public class DafAccessControlManager extends java.lang.Object implements AccessControlManager, RegionManager, java.io.Closeable
| Modifier and Type | Field and Description |
|---|---|
protected java.util.HashMap<SystemObject,AccessControlUnit> |
_authenticationClassHashMap
Map, die Berechtigungsklassen den kapselnden AccessControlUnit-Klassen zuordnet
|
protected ClientDavInterface |
_connection
Datenverteilerverbindung
|
protected static de.bsvrz.sys.funclib.debug.Debug |
_debug
Debug
|
protected boolean |
_isUsingNewDataModel
Ob das neue Datenmodell (siehe
ExtendedUserInfo) benutzt wird |
protected java.util.HashMap<SystemObject,Region> |
_regionHashMap
Map, die Regionen den kapselnden Region-Klassen zuordnet
|
protected java.util.HashMap<SystemObject,Role> |
_roleHashMap
Map, die Rollen den kapselnden Role-Klassen zuordnet
|
protected boolean |
_useImplicitUserManagement
Ob implizite Benutzerverwaltung durchgeführt wird, oder Benutzer mit addUser erstellt werden müssen
|
protected java.util.HashMap<java.lang.Long,UserInfoInternal> |
_userInfoHashMap
Map, die BenutzerIds den Benutzerobjekten zuordnet
|
protected java.util.concurrent.locks.ReentrantReadWriteLock |
_userMapLock
Lock-Objekt für
_userInfoHashMap |
| Constructor and Description |
|---|
DafAccessControlManager(boolean useNewDataModel,
ClientDavInterface connection,
boolean useImplicitUserManagement) |
| Modifier and Type | Method and Description |
|---|---|
void |
addChangeListener(AccessControlChangeListener listener)
Meldet einen Listener auf geänderte Nutzerrechte an
|
void |
addUser(long userId)
Fügt eine Benutzerinformation zu der Benutzertabelle hinzu, wenn der Datenverteiler die Benutzerrechte prüfen soll.
|
void |
close() |
AccessControlUnit |
getAuthenticationClass(SystemObject systemObject)
Gibt die AuthenticationClass-Klasse zurück die zu dem angeforderten Systemobjekt gehört.
|
Region |
getRegion(SystemObject systemObject)
Gibt die Region-Klasse zurück die zu dem angeforderten Systemobjekt gehört.
|
Role |
getRole(SystemObject systemObject)
Gibt die Role-Klasse zurück die zu dem angeforderten Systemobjekt gehört.
|
java.lang.Object |
getUpdateLock()
Um immer einen konsistenten Zustand zu haben, darf immer nur ein DataLoader gleichzeitig pro AccessControlManager geupdatet werden.
|
UserInfo |
getUserPermissions()
Gibt die Benutzerrechte zum aktuell angemeldeten Benutzer zurück.
|
UserInfo |
getUserPermissions(long userId)
Gibt das gespeicherte BenutzerObjekt mit der angegebenen ID zurück
|
boolean |
isUsingNewDataModel()
Fragt ab, ob das neue Datenmodell benutzt wird.
|
void |
notifyInfiniteRecursion(DataLoader node,
DataLoader parent,
java.util.List<DataLoader> trace)
Wird aufgerufen, wenn eine Rekursion in den Systemobjekten gefunden wurde.
|
void |
objectChanged(DataLoader object)
Wird aufgerufen un dem AccessControlManager zu informieren, dass ein verwaltetes Objekt sich geändert hat.
|
void |
removeChangeListener(AccessControlChangeListener listener)
Entfernt einen Listener auf geänderte Benutzerrechte
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetUserPermissions, getUserPermissionsprotected static final de.bsvrz.sys.funclib.debug.Debug _debug
protected final java.util.HashMap<java.lang.Long,UserInfoInternal> _userInfoHashMap
protected final java.util.HashMap<SystemObject,AccessControlUnit> _authenticationClassHashMap
protected final java.util.HashMap<SystemObject,Role> _roleHashMap
protected final java.util.HashMap<SystemObject,Region> _regionHashMap
protected final ClientDavInterface _connection
protected final boolean _isUsingNewDataModel
ExtendedUserInfo) benutzt wirdprotected final boolean _useImplicitUserManagement
protected final java.util.concurrent.locks.ReentrantReadWriteLock _userMapLock
_userInfoHashMappublic DafAccessControlManager(boolean useNewDataModel,
ClientDavInterface connection,
boolean useImplicitUserManagement)
public void addChangeListener(AccessControlChangeListener listener)
AccessControlManageraddChangeListener in interface AccessControlManagerlistener - Listenerpublic void removeChangeListener(AccessControlChangeListener listener)
AccessControlManagerremoveChangeListener in interface AccessControlManagerlistener - Listenerpublic void close()
close in interface java.io.Closeableclose in interface java.lang.AutoCloseablepublic final void addUser(long userId)
userId - BenutzerIDpublic boolean isUsingNewDataModel()
public void notifyInfiniteRecursion(DataLoader node, DataLoader parent, java.util.List<DataLoader> trace)
node - Der Knoten, der sich selbst referenziertparent - Der Knoten, der den problematischen Knoten referenzierttrace - Komplette Hierarchie vom Benutzer zum problematischen Objekt.public AccessControlUnit getAuthenticationClass(SystemObject systemObject)
systemObject - Systemobjekt, das eine Berechtigungsklasse repräsentiertpublic Region getRegion(SystemObject systemObject)
getRegion in interface RegionManagersystemObject - Systemobjekt, das eine Region repräsentiertpublic Role getRole(SystemObject systemObject)
systemObject - Systemobjekt, das eine Rolle repräsentiertpublic UserInfo getUserPermissions(long userId)
getUserPermissions in interface AccessControlManageruserId - Angegebene BenutzerIdpublic UserInfo getUserPermissions()
AccessControlManagergetUserPermissions in interface AccessControlManagerpublic java.lang.Object getUpdateLock()
getUpdateLock in interface RegionManagerpublic void objectChanged(DataLoader object)
objectChanged in interface RegionManagerobject - Objekt das sich geändert hat