org.apache.jackrabbit.core.security
Class AbstractAccessControlManager

java.lang.Object
  extended by org.apache.jackrabbit.core.security.AbstractAccessControlManager
All Implemented Interfaces:
AccessControlManager, JackrabbitAccessControlManager
Direct Known Subclasses:
DefaultAccessManager, SimpleAccessManager

public abstract class AbstractAccessControlManager
extends Object
implements JackrabbitAccessControlManager

AbstractAccessControlManager...


Constructor Summary
AbstractAccessControlManager()
           
 
Method Summary
protected abstract  void checkInitialized()
          Check if this manager has been properly initialized.
protected abstract  void checkPermission(String absPath, int permission)
          Check if the specified privileges are granted at absPath.
protected abstract  void checkValidNodePath(String absPath)
          Build a qualified path from the specified absPath and test if it is really absolute and points to an existing node.
 JackrabbitAccessControlPolicy[] getApplicablePolicies(Principal principal)
          Returns the editable policies for the specified principal.
 AccessControlPolicyIterator getApplicablePolicies(String absPath)
          Returns an empty iterator.
 AccessControlPolicy[] getPolicies(String absPath)
          Returns null.
protected abstract  PrivilegeRegistry getPrivilegeRegistry()
           
 Privilege[] getSupportedPrivileges(String absPath)
          Always returns all registered Privileges.
 Privilege privilegeFromName(String privilegeName)
          Returns the privilege with the specified privilegeName.
 void removePolicy(String absPath, AccessControlPolicy policy)
          Always throws AccessControlException
 void setPolicy(String absPath, AccessControlPolicy policy)
          Always throws AccessControlException
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.jackrabbit.api.jsr283.security.AccessControlManager
getEffectivePolicies, getPrivileges, hasPrivileges
 

Constructor Detail

AbstractAccessControlManager

public AbstractAccessControlManager()
Method Detail

getSupportedPrivileges

public Privilege[] getSupportedPrivileges(String absPath)
                                   throws PathNotFoundException,
                                          RepositoryException
Always returns all registered Privileges.

Specified by:
getSupportedPrivileges in interface AccessControlManager
Parameters:
absPath - Path to an existing node.
Returns:
Always returns all registered Privileges.
Throws:
PathNotFoundException - if no node at absPath exists or the session does not have privilege to retrieve the node.
RepositoryException - if another error occurs.
See Also:
AccessControlManager.getSupportedPrivileges(String)

privilegeFromName

public Privilege privilegeFromName(String privilegeName)
                            throws AccessControlException,
                                   RepositoryException
Description copied from interface: AccessControlManager
Returns the privilege with the specified privilegeName.

A AccessControlException is thrown if no privilege with the specified name exists.

A RepositoryException is thrown if another error occurs.

Specified by:
privilegeFromName in interface AccessControlManager
Parameters:
privilegeName - the name of an existing privilege.
Returns:
the Privilege with the specified privilegeName.
Throws:
AccessControlException - if no privilege with the specified name exists.
RepositoryException - if another error occurs.
See Also:
AccessControlManager.privilegeFromName(String)

getPolicies

public AccessControlPolicy[] getPolicies(String absPath)
                                  throws PathNotFoundException,
                                         AccessDeniedException,
                                         RepositoryException
Returns null.

Specified by:
getPolicies in interface AccessControlManager
Parameters:
absPath - Path to an existing node.
Returns:
always returns null.
Throws:
PathNotFoundException - if no node at absPath exists or the session does not have privilege to retrieve the node.
AccessDeniedException - if the session lacks READ_ACCESS_CONTROL privilege for the absPath node.
RepositoryException - if another error occurs.
See Also:
AccessControlManager.getApplicablePolicies(String)

getApplicablePolicies

public AccessControlPolicyIterator getApplicablePolicies(String absPath)
                                                  throws PathNotFoundException,
                                                         AccessDeniedException,
                                                         RepositoryException
Returns an empty iterator.

Specified by:
getApplicablePolicies in interface AccessControlManager
Parameters:
absPath - Path to an existing node.
Returns:
always returns an empty iterator.
Throws:
PathNotFoundException - if no node at absPath exists or the session does not have privilege to retrieve the node.
AccessDeniedException - if the session lacks READ_ACCESS_CONTROL privilege for the absPath node.
RepositoryException - if another error occurs.
See Also:
AccessControlManager.getApplicablePolicies(String)

setPolicy

public void setPolicy(String absPath,
                      AccessControlPolicy policy)
               throws PathNotFoundException,
                      AccessControlException,
                      AccessDeniedException,
                      RepositoryException
Always throws AccessControlException

Specified by:
setPolicy in interface AccessControlManager
Parameters:
absPath - an absolute path.
policy - the AccessControlPolicy to be applied.
Throws:
PathNotFoundException - if no node at absPath exists or the session does not have privilege to retrieve the node.
AccessControlException - if the policy is not applicable.
AccessDeniedException - if the session lacks MODIFY_ACCESS_CONTROL privilege for the absPath node.
LockException - if a lock applies at the node at absPath and this implementation performs this validation immediately instead of waiting until save.
VersionException - if the node at absPath is versionable and checked-in or is non-versionable but its nearest versionable ancestor is checked-in and this implementation performs this validation immediately instead of waiting until save.
RepositoryException - if another error occurs.
See Also:
AccessControlManager.setPolicy(String, AccessControlPolicy)

removePolicy

public void removePolicy(String absPath,
                         AccessControlPolicy policy)
                  throws PathNotFoundException,
                         AccessControlException,
                         AccessDeniedException,
                         RepositoryException
Always throws AccessControlException

Specified by:
removePolicy in interface AccessControlManager
Parameters:
absPath - an absolute path.
policy - the policy to be removed.
Throws:
PathNotFoundException - if no node at absPath exists or the session does not have privilege to retrieve the node.
AccessControlException - if no policy exists.
AccessDeniedException - if the session lacks MODIFY_ACCESS_CONTROL privilege for the absPath node.
LockException - if a lock applies at the node at absPath and this implementation performs this validation immediately instead of waiting until save.
VersionException - if the node at absPath is versionable and checked-in or is non-versionable but its nearest versionable ancestor is checked-in and this implementation performs this validation immediately instead of waiting until save.
RepositoryException - if another error occurs.
See Also:
AccessControlManager.removePolicy(String, AccessControlPolicy)

getApplicablePolicies

public JackrabbitAccessControlPolicy[] getApplicablePolicies(Principal principal)
                                                      throws AccessDeniedException,
                                                             AccessControlException,
                                                             UnsupportedRepositoryOperationException,
                                                             RepositoryException
Description copied from interface: JackrabbitAccessControlManager
Returns the editable policies for the specified principal.

Specified by:
getApplicablePolicies in interface JackrabbitAccessControlManager
Parameters:
principal - A principal known to the editing session.
Returns:
array of policies for the specified principal. Note that the policy object returned must reveal the path of the node where they can be applied later on using AccessControlManager.setPolicy(String, org.apache.jackrabbit.api.jsr283.security.AccessControlPolicy).
Throws:
AccessDeniedException - if the session lacks MODIFY_ACCESS_CONTROL privilege.
AccessControlException - if the specified principal does not exist or if another access control related exception occurs.
UnsupportedRepositoryOperationException - if editing access control policies is not supported.
RepositoryException - if another error occurs.
See Also:
JackrabbitAccessControlManager.getApplicablePolicies(java.security.Principal)

checkInitialized

protected abstract void checkInitialized()
                                  throws IllegalStateException
Check if this manager has been properly initialized.

Throws:
IllegalStateException - If this manager has not been properly initialized.

checkPermission

protected abstract void checkPermission(String absPath,
                                        int permission)
                                 throws AccessDeniedException,
                                        PathNotFoundException,
                                        RepositoryException
Check if the specified privileges are granted at absPath.

Parameters:
absPath - Path to an existing node.
permission - Permissions to be checked.
Throws:
AccessDeniedException - if the session does not have the specified privileges.
PathNotFoundException - if no node exists at absPath of if the session does not have the permission to READ it.
RepositoryException - If another error occurs.

getPrivilegeRegistry

protected abstract PrivilegeRegistry getPrivilegeRegistry()
                                                   throws RepositoryException
Returns:
the privilege registry
Throws:
RepositoryException - If another error occurs.

checkValidNodePath

protected abstract void checkValidNodePath(String absPath)
                                    throws PathNotFoundException,
                                           RepositoryException
Build a qualified path from the specified absPath and test if it is really absolute and points to an existing node.

Parameters:
absPath - Path to an existing node.
Throws:
PathNotFoundException - if no node at absPath exists or the session does not have privilege to retrieve the node.
RepositoryException - If the given absPath is not absolute or if some other error occurs.


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