org.apache.jackrabbit.api.security.user
Interface Authorizable

All Known Subinterfaces:
Group, User
All Known Implementing Classes:
UserImpl

public interface Authorizable

The Authorizable is the common base interface for User and Group. It provides access to the Principals associated with an Authorizable (see below) and allow to access and modify additional properties such as e.g. full name, e-mail or address.

Please note the difference between Authorizable and Principal:
An Authorizable is repository object that is neither associated with nor depending from a particular Session and thus independent of the login mechanisms creating Sessions.

On the other hand Principals are representations of user identities. In other words: each Principal within the set associated with the Session's Subject upon login represents an identity for that user. An the set of Principals may differ between different login mechanisms.

Consequently an one-to-many relationship exists between Authorizable and Principal (see also getPrincipal().

The interfaces derived from Authorizable are defined as follows:

See Also:
User, Group

Method Summary
 Iterator<Group> declaredMemberOf()
           
 String getID()
          Return the implementation specific identifier for this Authorizable.
 Principal getPrincipal()
           
 Value[] getProperty(String relPath)
          Returns the values for the properties with the specified name or null.
 Iterator<String> getPropertyNames()
          Returns the names of properties present with this Authorizable not taking possible relative paths into consideration.
 Iterator<String> getPropertyNames(String relPath)
          Returns the names of properties present with this Authorizable at the specified relative path.
 boolean hasProperty(String relPath)
          Tests if a the property with specified name exists.
 boolean isGroup()
           
 Iterator<Group> memberOf()
           
 void remove()
          Removes this Authorizable, if the session has sufficient permissions.
 boolean removeProperty(String relPath)
          Removes the property with the given name.
 void setProperty(String relPath, Value value)
          Set an arbitrary property to this Authorizable.
 void setProperty(String relPath, Value[] value)
          Set an arbitrary property to this Authorizable.
 

Method Detail

getID

String getID()
             throws RepositoryException
Return the implementation specific identifier for this Authorizable. It could e.g. be a UserID or simply the principal name.

Returns:
Name of this Authorizable.
Throws:
RepositoryException - if an error occurs.

isGroup

boolean isGroup()
Returns:
if the current Authorizable is a Group

getPrincipal

Principal getPrincipal()
                       throws RepositoryException
Returns:
a representation as Principal.
Throws:
RepositoryException - If an error occurs.

declaredMemberOf

Iterator<Group> declaredMemberOf()
                                 throws RepositoryException
Returns:
all Groups, this Authorizable is declared member of.
Throws:
RepositoryException - If an error occurs.

memberOf

Iterator<Group> memberOf()
                         throws RepositoryException
Returns:
all Groups, this Authorizable is member of included indirect group membership.
Throws:
RepositoryException - If an error occurs.

remove

void remove()
            throws RepositoryException
Removes this Authorizable, if the session has sufficient permissions. Note, that removing an Authorizable even if it listed as member of a Group or if still has members (this is a Group itself).

Throws:
RepositoryException - If an error occurred and the Authorizable could not be removed.

getPropertyNames

Iterator<String> getPropertyNames()
                                  throws RepositoryException
Returns the names of properties present with this Authorizable not taking possible relative paths into consideration. Same as getPropertyNames(String) where the specified string is ".".

Returns:
names of properties.
Throws:
RepositoryException - If an error occurs.
See Also:
where the specified relative path is simply an name., hasProperty(String)

getPropertyNames

Iterator<String> getPropertyNames(String relPath)
                                  throws RepositoryException
Returns the names of properties present with this Authorizable at the specified relative path.

Returns:
names of properties.
Throws:
RepositoryException - If an error occurs.
See Also:
getProperty(String), hasProperty(String)

hasProperty

boolean hasProperty(String relPath)
                    throws RepositoryException
Tests if a the property with specified name exists.

Parameters:
relPath - The relative path to the property to be tested.
Returns:
true if a property with the given name exists.
Throws:
RepositoryException - If an error occurs.
See Also:
getProperty(String)

setProperty

void setProperty(String relPath,
                 Value value)
                 throws RepositoryException
Set an arbitrary property to this Authorizable.

Parameters:
relPath - The relative path of the property to be added or modified.
value - The desired value.
Throws:
RepositoryException - If the specified property could not be set.

setProperty

void setProperty(String relPath,
                 Value[] value)
                 throws RepositoryException
Set an arbitrary property to this Authorizable.

Parameters:
relPath - The relative path of the property to be added or modified.
value - The desired property values.
Throws:
RepositoryException - If the specified property could not be set.

getProperty

Value[] getProperty(String relPath)
                    throws RepositoryException
Returns the values for the properties with the specified name or null.

Parameters:
relPath - Relative path of the property to be retrieved.
Returns:
value of the property with the given name or null if no such property exists.
Throws:
RepositoryException - If an error occurs.

removeProperty

boolean removeProperty(String relPath)
                       throws RepositoryException
Removes the property with the given name.

Parameters:
relPath - Relative path (or name) of the property to be removed.
Returns:
true If the property at the specified relPath was successfully removed; false if no such property was present.
Throws:
RepositoryException - If an error occurs.


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