|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.jsystems.framework.security.acl.BaseOwner
de.jsystems.framework.security.acl.BaseAcl
Beispielimplementierung für das Interface Acl.
Diese Klasserepräsentiert eine Access Control List(ACL). Eine ACL ist eine Datenstruktur
um den Zugriff auf Ressourcen zu schützen.
Eine ACL kann als Tabelle mit mehreren Einträgen betrachtet werden. Jeder Eintrag vom Typ
AclEntry
enthält einen Satz von Rechten(Permission
) für einen
Principal
.
(Ein 'Principal' ist eine Einheit und stellt entweder eine einzelne Person(User) oder eine
Gruppe dar.))
Zusätzlich ist jeder Eintrag entweder positiv oder negativ. Positiv bedeutet hier, das alle
enthaltenen Rechte dem zugehörigen Principal zugewiesen sind. Negativ bedeutet, das alle
enthaltenen Rechte dem zugehörigen Principal entzogen sind.
Die Einträge in einer ACL unterliegen den folgenden Regeln:
Jeder Principal kann nur einen positiven Eintrag und einen negativen Eintrag haben. Das
heist mehrere positive oder negative Einträge sind nicht erlaubt für einen Principal.
Jeder Eintrag hat einen Satz von Rechten, die dem Principal entweder erlaubt oder entzogen
sind. Somit machen mehrere positive(=erlaubte) oder negative(=verbotene) Einträge auch keinen
Sinn.
Wenn es für einen Principal keine Einträge gibt, so hat dieser Principal einen NULL-Rechte-Satz
(einen leeren Satz von Rechten).
Wenn es einen positiven Eintrag gibt, der dem Principal ein Recht zusichert und einen negativen
Eintrag, der im das gleiche Recht verweigert, so bedeutet das, daß dieses Recht weder zugewiesen
noch entzogen ist.
Indiviuelle Rechte zu einem konkreten Benutzer überschreiben Einstellungen aus der Gruppe zu
der der Benutzer gehört. Das heist individuelle negative Rechte überschreiben die Erlaubnis zu
diesem Recht aus der Gruppe und Rechte, die der Gruppe entzogen wurden können einzelnen Mitgliedern
der Gruppe wieder zugewiesen werden.
Das java.security.acl-Package enthält alle Interfaces für die Implementierung einer ACL und der
benötigten Strukturen(AclEntry, Group, Owner, etc.).
Im Package sun.security.acl(Enthalten in der Datei rt.jar
. Keine Beschreibung im JDK vorhanden)
befindet sich eine Default-Implementierung zu diesen Interfaces.
Aus dieser Default-Implementierung entstanden die Klassen im Package de.jsystems.framework.security.acl.
Constructor Summary | |
BaseAcl(Principal owner,
String name)
Konstruktor. |
Method Summary | |
boolean |
addEntry(Principal caller,
AclEntry entry)
Fügt der ACL einen neuen Eintrag hinzu. |
boolean |
checkPermission(Principal principal,
Permission permission)
Prüft ob der übergebene Principal über das übergeben Recht verfügt. |
Enumeration |
entries()
Gibt eine Enumeration mit allen Einträgen aus der ACL zurück. |
Enumeration |
getGroupNegative(Group g)
Gibt eine Enumeration mit allen entzogenen Rechten der Gruppe zurück. |
Enumeration |
getGroupNegative(Principal principal)
Gibt eine Enumeration mit allen entzogenen Rechten der Gruppe zurück zu der der Principal gehört. |
Enumeration |
getGroupPositive(Group g)
Gibt eine Enumeration mit allen erlaubten Rechten der übergebenen Gruppe zurück. |
Enumeration |
getGroupPositive(Principal principal)
Gibt eine Enumeration mit allen erlaubten Rechten der Gruppe zurück zu der der Principal gehört. |
Enumeration |
getIndividualNegative(Principal principal)
Gibt eine Enumeration mit allen entzogenen Rechten des Principals zurück. |
Enumeration |
getIndividualPositive(Principal principal)
Gibt eine Enumeration mit allen Rechten des Principals zurück. |
String |
getName()
Gibt den Namen der ACL zurück. |
Enumeration |
getPermissions(Principal user)
Gibt eine Enumeration mit einer Liste aller erlaubten Rechten für den spezifizierten Principal (repräsentiert entweder einen User oder eine Gruppe) zurück. |
boolean |
removeEntry(Principal caller,
AclEntry entry)
Löscht einen Eintrag aus der ACL. |
void |
setName(Principal caller,
String name)
Setzt den Namen für diese ACL. |
String |
toString()
Gibt eine Stringrepräsentation über den Inhalt dieser ACL zurück. |
Methods inherited from class de.jsystems.framework.security.acl.BaseOwner |
addOwner, deleteOwner, isOwner |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface java.security.acl.Owner |
addOwner, deleteOwner, isOwner |
Constructor Detail |
public BaseAcl(Principal owner, String name)
owner
- Eigentümer der ACL.name
- Der Name der ACL.Method Detail |
public void setName(Principal caller, String name) throws NotOwnerException
setName
in interface Acl
caller
- Der Principal, der diese Methode aufgerufen hat. Er muß
ein Owner dieser ACL sein, sonst wird eine Exception ausgelöst.name
- Der Name für diese Acl.
NotOwnerException
- wenn der Aufrufer(caller) kein Besitzer dieser ACL ist.public String getName()
getName
in interface Acl
public boolean addEntry(Principal caller, AclEntry entry) throws NotOwnerException
addEntry
in interface Acl
caller
- Der Principal, der diese Methode aufgerufen hat. Er muß ein Owner dieser
ACL sein, sonst wird eine Exception ausgelöst.entry
- Der Eintrag der der ACL hinzugefügt werden soll.
true
bei Erfolg, false
wenn es einen Eintrag vom gleichen
Typ für den zugehörigen Principal schon gibt.
NotOwnerException
- wenn der Aufrufer kein Owner dieser ACL ist.public boolean removeEntry(Principal caller, AclEntry entry) throws NotOwnerException
removeEntry
in interface Acl
caller
- Der Principal, der diese Methode aufgerufen hat. Er muß
ein Owner dieser ACL sein, sonst wird eine Exception ausgelöst.entry
- Der zu löschende Eintrag in der ACL.
true
bei Erfolg, false
wenn es diesen Eintrag
in der ACL nicht gibt.
NotOwnerException
- wenn der Aufrufer kein Owner dieser ACL ist.public Enumeration getPermissions(Principal user)
getPermissions
in interface Acl
user
- Der Principal dessen Rechte zurückgegeben werden sollen.
public boolean checkPermission(Principal principal, Permission permission)
getPermissions(java.security.Principal)
.
checkPermission
in interface Acl
principal
- Der Principal, dessen Berechtigung geprüft werden soll.permission
- Die zu prüfende Berechtigung.
true
wenn der Principal über die entsprechende Berechtigung verfügt,
ansonsten false
.getPermissions(java.security.Principal)
public Enumeration entries()
AclEntry
.
entries
in interface Acl
public String toString()
AclEntry
in einem StringBuffer
aneinander gefuegt.
toString
in interface Acl
public Enumeration getGroupPositive(Principal principal)
principal
- - Ein Principal desen Rechte ausgelesen werden sollen.
public Enumeration getGroupNegative(Principal principal)
principal
- Ein Principal dessen entzogene Rechte ausgelesen werden sollen.
public Enumeration getGroupPositive(Group g)
g
- Eine Gruppe deren Rechte ausgelesen werden sollen.
public Enumeration getGroupNegative(Group g)
g
- Eine Gruppe deren entzogene Rechte ausgelesen werden sollen.
public Enumeration getIndividualPositive(Principal principal)
principal
- Ein Principal dessen Rechte ausgelesen werden sollen.
public Enumeration getIndividualNegative(Principal principal)
principal
- Ein Principal dessen entzogene Rechte ausgelesen werden sollen.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |