org.apache.jackrabbit.core.security.authorization
Class UnmodifiableAccessControlList

java.lang.Object
  extended by org.apache.jackrabbit.core.security.authorization.UnmodifiableAccessControlList
All Implemented Interfaces:
AccessControlList, AccessControlPolicy

public class UnmodifiableAccessControlList
extends Object
implements AccessControlList

An implementation of the AccessControlList interface that only allows for reading. The write methods (addAccessControlEntry and removeAccessControlEntry) throw an AccessControlException.


Constructor Summary
UnmodifiableAccessControlList(AccessControlList acl)
          Construct a new UnmodifiableAccessControlList
UnmodifiableAccessControlList(List accessControlEntries)
          Construct a new UnmodifiableAccessControlList
 
Method Summary
 boolean addAccessControlEntry(Principal principal, Privilege[] privileges)
          Adds an access control entry to this policy consisting of the specified principal and the specified privileges.
 AccessControlEntry[] getAccessControlEntries()
          Returns all access control entries present with this policy.
 void removeAccessControlEntry(AccessControlEntry ace)
          Removes the specified AccessControlEntry from this policy.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UnmodifiableAccessControlList

public UnmodifiableAccessControlList(AccessControlList acl)
                              throws RepositoryException
Construct a new UnmodifiableAccessControlList

Parameters:
acl -
Throws:
RepositoryException

UnmodifiableAccessControlList

public UnmodifiableAccessControlList(List accessControlEntries)
Construct a new UnmodifiableAccessControlList

Parameters:
accessControlEntries -
Method Detail

getAccessControlEntries

public AccessControlEntry[] getAccessControlEntries()
                                             throws RepositoryException
Description copied from interface: AccessControlList
Returns all access control entries present with this policy.

This method is only guaranteed to return an AccessControlEntry if that AccessControlEntry has been assigned through this API.

A RepositoryException is thrown if an error occurs.

Specified by:
getAccessControlEntries in interface AccessControlList
Returns:
all access control entries present with this policy.
Throws:
RepositoryException - if an error occurs.
See Also:
AccessControlList.getAccessControlEntries()

addAccessControlEntry

public boolean addAccessControlEntry(Principal principal,
                                     Privilege[] privileges)
                              throws AccessControlException,
                                     RepositoryException
Description copied from interface: AccessControlList
Adds an access control entry to this policy consisting of the specified principal and the specified privileges.

This method returns true if this policy was modified, false otherwise.

How the entries are grouped within the list is an implementation detail. An implementation may e.g. combine the specified privileges with those added by a previous call to addAccessControlEntry for the same Principal. However, a call to addAccessControlEntry for a given Principal can never remove a Privilege added by a previous call.

The modification does not take effect until this policy has been set to a node by calling AccessControlManager.setPolicy(String, AccessControlPolicy) and save is performed.

An AccessControlException is thrown if the specified principal or any of the privileges does not exist or if some other access control related exception occurs.

A RepositoryException is thrown if another error occurs.

Specified by:
addAccessControlEntry in interface AccessControlList
Parameters:
principal - a Principal.
privileges - an array of Privileges.
Returns:
true if this policy was modify; false otherwise.
Throws:
AccessControlException - if the specified principal or any of the privileges does not existor if some other access control related exception occurs.
RepositoryException - if another error occurs.
See Also:
AccessControlList.addAccessControlEntry(Principal, Privilege[])

removeAccessControlEntry

public void removeAccessControlEntry(AccessControlEntry ace)
                              throws AccessControlException,
                                     RepositoryException
Description copied from interface: AccessControlList
Removes the specified AccessControlEntry from this policy.

Only exactly those entries obtained through getAccessControlEntries can be removed. This method does not take effect until this policy has been re-set to a node by calling AccessControlManager.setPolicy(String, AccessControlPolicy) and save is performed.

An AccessControlException is thrown if the specified entry is not present on this policy.

A RepositoryException is thrown if another error occurs.

Specified by:
removeAccessControlEntry in interface AccessControlList
Parameters:
ace - the access control entry to be removed.
Throws:
AccessControlException - if the specified entry is not present on the specified node.
RepositoryException - if another error occurs.
See Also:
AccessControlList.removeAccessControlEntry(AccessControlEntry)


Copyright © 2004-2008 The Apache Software Foundation. All Rights Reserved.