Class ArchiveAccessControlPlugin
java.lang.Object
de.bsvrz.dav.dav.communication.accessControl.ArchiveAccessControlPlugin
- All Implemented Interfaces:
AccessControlPlugin
public class ArchiveAccessControlPlugin extends java.lang.Object implements AccessControlPlugin
Zugriffssteuerungs-Plugin für den Datenverteiler, das Archivanfragen überwacht.
-
Constructor Summary
Constructors Constructor Description ArchiveAccessControlPlugin()
-
Method Summary
Modifier and Type Method Description java.util.Collection<de.bsvrz.dav.daf.main.config.AttributeGroupUsage>
getAttributeGroupUsagesToFilter()
de.bsvrz.dav.daf.main.Data
handleData(long userID, de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo, de.bsvrz.dav.daf.main.Data data)
Wird aufgerufen wenn ein Datenpaket eintrifft, dass den inAccessControlPlugin.getAttributeGroupUsagesToFilter()
angegebenen Attributgruppenverwendungen entspricht.void
initialize(de.bsvrz.dav.daf.accessControl.AccessControlManager accessControlManager, de.bsvrz.dav.daf.main.ClientDavInterface clientDavInterface)
Wird aufgerufen, nachdem das Plugin instantiiert wurde.void
sendData(de.bsvrz.dav.daf.main.ResultData dataset)
Sendet einen DAF-Datensatz als Sender.void
sendData(de.bsvrz.dav.daf.main.ResultData dataset, de.bsvrz.dav.daf.main.SenderRole senderRole)
Sendet einen DAF-Datensatz als Sender.java.lang.String
toString()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Constructor Details
-
ArchiveAccessControlPlugin
public ArchiveAccessControlPlugin()
-
-
Method Details
-
initialize
public void initialize(de.bsvrz.dav.daf.accessControl.AccessControlManager accessControlManager, de.bsvrz.dav.daf.main.ClientDavInterface clientDavInterface)Description copied from interface:AccessControlPlugin
Wird aufgerufen, nachdem das Plugin instantiiert wurde. Hiermit wird dem Plugin eine Verbindung zum Datenverteiler übergeben.- Specified by:
initialize
in interfaceAccessControlPlugin
- Parameters:
accessControlManager
- Klasse, die die Standard-Zugriffsrechte verwaltet.clientDavInterface
- Verbindung zum Datenverteiler
-
getAttributeGroupUsagesToFilter
public java.util.Collection<de.bsvrz.dav.daf.main.config.AttributeGroupUsage> getAttributeGroupUsagesToFilter()Description copied from interface:AccessControlPlugin
Wird nachAccessControlPlugin.initialize(AccessControlManager, de.bsvrz.dav.daf.main.ClientDavInterface)
aufgerufen. Die Funktion soll alle Attributgruppenverwendungen zurückgeben, dessen Daten es ansehen und gegebenenfalls verändern will.- Specified by:
getAttributeGroupUsagesToFilter
in interfaceAccessControlPlugin
- Returns:
- Liste mit Attributgruppenverwendungen
-
handleData
@Nullable public de.bsvrz.dav.daf.main.Data handleData(long userID, de.bsvrz.dav.daf.communication.lowLevel.telegrams.BaseSubscriptionInfo baseSubscriptionInfo, de.bsvrz.dav.daf.main.Data data)Description copied from interface:AccessControlPlugin
Wird aufgerufen wenn ein Datenpaket eintrifft, dass den inAccessControlPlugin.getAttributeGroupUsagesToFilter()
angegebenen Attributgruppenverwendungen entspricht. Die Funktion kann- das Datenpaket unverändert weitergeben
- das Datenpaket modifizieren
- ein neues Datenobjekt erstellen
- das Datenpaket verwerfen
- Specified by:
handleData
in interfaceAccessControlPlugin
- Parameters:
userID
- Benutzer-ID, von dem das Datenpaket stammt. Ist nicht zwingend der Benutzer, der das Datenpaket abgesendet hat, sondern kann auch der Benutzer des Datenverteilers sein, der das Paket zuletzt verarbeitet hat. Die Standard-Berechtigungen zu diesem Benutzer können mitDafAccessControlManager.getUserPermissions(long)
gelesen werden.baseSubscriptionInfo
- Anmeldung für die das Datenpaket verschickt wurde.data
- Datenpaket, das gefiltert wurde.- Returns:
data
- Wenn das Datenpaket unverändert weitergesendet werden soll, ist der Parameter
data
zurückzugeben. data.createModifiableCopy()
- Wenn das Datenpaket verändert werden soll, kann mit
data.createModifiableCopy()
eine veränderbare Kopie erzeugt und entsprechend verändert werden. Diese Kopie ist dann zurückzugeben. clientDavInterface.createData()
- Mit der in
AccessControlPlugin.initialize(AccessControlManager, de.bsvrz.dav.daf.main.ClientDavInterface)
angegebenen Datenverteilerverbindung kann auch ein neues Data-Objekt erstellt und zurückgegeben werden. Zu beachten ist, dass es dennoch an die ursprüngliche Anmeldung verschickt wird und deshalb die gleiche Attributgruppe benutzen sollte, wie das originale Datenpaket. Ist das nicht der Fall tritt möglicherweise undefiniertes Verhalten auf. null
- Wird
null
zurückgegeben wird das Datenpaket verworfen und nicht weitergesendet. Sollte nur verwendet werden, wenn das Plugin selbst eine Antwort bzw. ein eigenes Datenpaket verschickt, oder wenn das Eintreffen des Datenpakets unwichtig ist und niemand auf eine eventuelle Antwort wartet.
-
sendData
public void sendData(de.bsvrz.dav.daf.main.ResultData dataset)Sendet einen DAF-Datensatz als Sender. Diese Methode übernimmt das An- und Abmelden des Senders.- Parameters:
dataset
- datensatz
-
sendData
public void sendData(de.bsvrz.dav.daf.main.ResultData dataset, de.bsvrz.dav.daf.main.SenderRole senderRole)Sendet einen DAF-Datensatz als Sender. Diese Methode übernimmt das an- und Abmelden des Senders.- Parameters:
dataset
- datensatzsenderRole
- Art Sender/Quelle
-
toString
public java.lang.String toString()- Overrides:
toString
in classjava.lang.Object
-