de.jsystems.framework.security.acl
Class BaseAclEntry

java.lang.Object
  extended byde.jsystems.framework.security.acl.BaseAclEntry
All Implemented Interfaces:
AclEntry, Cloneable

public class BaseAclEntry
extends Object
implements AclEntry

Beispielimplementierung für das Interface AclEntry Eine ACL kann als Liste mehrerer ACL-Einträge betrachtet werden. Jeder Eintrag wiederum enthält eine Liste von Rechten und gehört immer zu einem Principal(Ein User odr eine Gruppe). Zusätzlich ist jeder Eintrag spezifiziert als entwerder positiv oder negativ. Positiv bedeutet, das er einem Principal Rechte gibt. Negativ bedeutet, das er dem Principal diese Rechte wieder entzieht. Jeder Principal kann jeweils nur einen positiven und einen negativen Eintrag haben, mehrfache positive oder negative Einträge für einen Principal sind nicht erlaubt. Ein ACL-Eintrag ist per default immer positiv. Negativ wird er erst durch Aufruf der Methode setNegativePermissions(). Sobald ein Eintrag negativ ist kann er nicht mehr positiv gemacht werden.

Version:
1.0
Copyright by Jens Homm 2001 - 2003
Author:
Jens Homm JSYSTEMS

Constructor Summary
BaseAclEntry()
          Konstruktor.
BaseAclEntry(Principal principal)
          Konstruktor.
 
Method Summary
 boolean addPermission(Permission permission)
          Fügt dem Eintrag eine neue Berechtigung zu.
 boolean checkPermission(Permission permission)
          Prüft, ob die uebergebene Berechtigung in der Liste der Berechtigungen enthalten ist.
 Object clone()
          Legt eine Kopie dieses Objektes an.
 Principal getPrincipal()
          Gibt den Principal zurück für den die Rechte in diesem ACL-Eintrag gesetzt wurden.
 boolean hasPermission(Permission permission)
          Prüft, ob dieser AclEntry die uebergebene Berechtigung enthaelt.
 boolean isNegative()
          Gibt true zurück, wenn dieser Eintrag negativ ist, ansonsten false.
 Enumeration permissions()
          Gibt eine Enumeration mit allen Berechtigungen aus diesem AclEntry zurück.
 boolean removePermission(Permission permission)
          Löscht die uebergebene Berechtigung aus der Liste der Berechtigungen in diesem AclEntry.
 void setNegativePermissions()
          Legt fest, das dieser Eintrag für entzogene Rechte ist.
 boolean setPrincipal(Principal principal)
          Setzt den Principal für den die in diesem Eintrag verwalteten Rechte gelten sollen.
 String toString()
          Gibt die Stringrepräsentation für diesen AclEntry zurück.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

BaseAclEntry

public BaseAclEntry(Principal principal)
Konstruktor. Erzeugt einen AclEntry für den übergebenen Principal.

Parameters:
principal - Der Principal zu dem ein Rechte-Eintrag erzeugt werden soll.

BaseAclEntry

public BaseAclEntry()
Konstruktor. Erzeugt einen AclEntry. Der AclEntry gehört noch zu keinem User. Dieser muß später mit der Methode setPrincipal() gesetzt werden. Sobald einmal ein Principal gesetzt ist kann er nicht nochmals gesetzt werden

Method Detail

setPrincipal

public boolean setPrincipal(Principal principal)
Setzt den Principal für den die in diesem Eintrag verwalteten Rechte gelten sollen. Falls es für diesen Eintrag schon einen Principal gibt wird false zurückgegeben, ansonsten true.

Specified by:
setPrincipal in interface AclEntry
Parameters:
principal - Der Principal für den dieser ACL-Eintrag gelten soll.
Returns:
true wenn der Principal gesetzt werden konnte, false wenn für diesen ACL-Eintrag schon ein Principal gesetzt war.

getPrincipal

public Principal getPrincipal()
Gibt den Principal zurück für den die Rechte in diesem ACL-Eintrag gesetzt wurden. Gibt NULL zurück, wenn für diesen Eintrag noch kein Principal festgelegt wurde.

Specified by:
getPrincipal in interface AclEntry
Returns:
Der Principal, der zu diesem ACL-Eintrag gehört.

setNegativePermissions

public void setNegativePermissions()
Legt fest, das dieser Eintrag für entzogene Rechte ist. Das bedeutet, das dem zugehörigen Principal(Ein User oder eine Gruppe) alle Rechte entzogen werden, die sich in diesem Eintrag befinden. Sobald diese Liste auf negative gesetzt wurde kann das nicht mehr rueckgaengig machen. Zu Beachten: Ein AclEntry ist per default erst mal positiv. Erst durch Aufruf der Methode setNegativePermissions() wird der Eintrag negativ.

Specified by:
setNegativePermissions in interface AclEntry

isNegative

public boolean isNegative()
Gibt true zurück, wenn dieser Eintrag negativ ist, ansonsten false.

Specified by:
isNegative in interface AclEntry
Returns:
true wenn es sich um einen negativen Eintrag handelt ansonsten false.

addPermission

public boolean addPermission(Permission permission)
Fügt dem Eintrag eine neue Berechtigung zu. Ein AclEntry kann mehrere Berechtigungen haben. Sollte die uebergebene Berechtigung in der Liste schon enthalten sein wird false zurueckgegeben.

Specified by:
addPermission in interface AclEntry
Parameters:
permission - Die Berechtigung, die diesem Eintrag hinzugfügt werden soll.
Returns:
true, wenn die Berechtigung hinzugefügt werden konnte. false, wenn diese Berechtigung schon in der Liste der Berechtigungen für diesen AclEntry vorhanden war.

removePermission

public boolean removePermission(Permission permission)
Löscht die uebergebene Berechtigung aus der Liste der Berechtigungen in diesem AclEntry.

Specified by:
removePermission in interface AclEntry
Parameters:
permission - Die zu löschende Berechtigung.
Returns:
true wenn die Berechtigung gelöscht werden konnte. false wenn die Berechtigung nicht in der Liste der Berechtigungen für diesen AclEntry vorhanden war.

checkPermission

public boolean checkPermission(Permission permission)
Prüft, ob die uebergebene Berechtigung in der Liste der Berechtigungen enthalten ist.

Specified by:
checkPermission in interface AclEntry
Parameters:
permission - Die zu prüfende Berechtigung.
Returns:
true wenn die Berechtigung in der Liste der Berechtigungen steht, ansonsten false.

permissions

public Enumeration permissions()
Gibt eine Enumeration mit allen Berechtigungen aus diesem AclEntry zurück.

Specified by:
permissions in interface AclEntry
Returns:
Eine Enumeration mit allen Berechtigungen dieser Liste.

toString

public String toString()
Gibt die Stringrepräsentation für diesen AclEntry zurück. Dabei faengt der String mit einem Plus(+) oder Minus(-) an, je nachdem ob es sich um eine positive oder negative Liste handelt, gefolgt von der Bezeichnung 'User ' oder 'Group ', je nachdem, ob die Liste fuer eine Gruppe(Group ) oder ein Principal(User ) ist. Anschliessend folgt nach einem Gleichheitszeichen(=) eine Kommaseparierte Liste mit den Namen aller Berechtigungen in der Liste.

Specified by:
toString in interface AclEntry
Returns:
Eine Stringrepräsentation der Einträge in diesem AclEntry.

hasPermission

public boolean hasPermission(Permission permission)
Prüft, ob dieser AclEntry die uebergebene Berechtigung enthaelt. Wenn ja wird true zurückgegeben, andernfalls false.

Returns:
true, wenn die Liste die uebergebene Berechtigung enthaelt, ansonsten false.

clone

public Object clone()
Legt eine Kopie dieses Objektes an.

Specified by:
clone in interface AclEntry
Returns:
Eine Kopie dieses AclEntrys.