org.apache.jackrabbit.core.security.principal
Class FallbackPrincipalProvider

java.lang.Object
  extended by org.apache.jackrabbit.core.security.principal.FallbackPrincipalProvider
All Implemented Interfaces:
PrincipalProvider

public class FallbackPrincipalProvider
extends Object
implements PrincipalProvider

The FallbackPrincipalProvider is used to provide any desired principal. It is used to defined ACE for principals that are not known to the repository yet or that were deleted.


Field Summary
static String OPTION_DISABLED
          name of the "disabled" option.
 
Constructor Summary
FallbackPrincipalProvider()
           
 
Method Summary
 boolean canReadPrincipal(Session session, Principal principalToRead)
          Tests if the provided session is allowed to read the given principal.
 void close()
          This is called when a provider is not longer used by the repository.
 PrincipalIterator findPrincipals(String simpleFilter)
          Searches for Principals that match the given String.
 PrincipalIterator findPrincipals(String simpleFilter, int searchType)
          Searches for Principals that match the given String.
 PrincipalIterator getGroupMembership(Principal principal)
          Returns an iterator over all group principals for which the given principal is either direct or indirect member of.
 Principal getPrincipal(String principalName)
          Returns the principal with the given name if is known to this provider
 PrincipalIterator getPrincipals(int searchType)
          Returns an iterator over all principals that match the given search type.
 void init(Properties options)
          Initialize this provider.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

OPTION_DISABLED

public static final String OPTION_DISABLED
name of the "disabled" option.

See Also:
Constant Field Values
Constructor Detail

FallbackPrincipalProvider

public FallbackPrincipalProvider()
Method Detail

getPrincipal

public Principal getPrincipal(String principalName)
Returns the principal with the given name if is known to this provider

Specified by:
getPrincipal in interface PrincipalProvider
Parameters:
principalName - the name of the principal to retrieve
Returns:
a UnknownPrincipal with the given name.

findPrincipals

public PrincipalIterator findPrincipals(String simpleFilter)
Searches for Principals that match the given String. NOTE: Groups are included in the search result.

Specified by:
findPrincipals in interface PrincipalProvider
Returns:
an empty principal iterator
See Also:
PrincipalProvider.findPrincipals(String,int)

findPrincipals

public PrincipalIterator findPrincipals(String simpleFilter,
                                        int searchType)
Searches for Principals that match the given String.

Specified by:
findPrincipals in interface PrincipalProvider
searchType - searchType Any of the following constants:
Returns:
an empty principal iterator
See Also:
PrincipalProvider.findPrincipals(String)

getPrincipals

public PrincipalIterator getPrincipals(int searchType)
Returns an iterator over all principals that match the given search type.

Specified by:
getPrincipals in interface PrincipalProvider
Parameters:
searchType - searchType Any of the following constants:
Returns:
an empty principal iterator

getGroupMembership

public PrincipalIterator getGroupMembership(Principal principal)
Returns an iterator over all group principals for which the given principal is either direct or indirect member of. If a principal is a direct member of a group, then Group.isMember(Principal) evaluates to true. A principal is an indirect member of a group if any of its groups (to any degree of separation) is direct memeber of the group.

Example:
If Principal is member of Group A, and Group A is member of Group B, this method will return Group A and Group B.

Specified by:
getGroupMembership in interface PrincipalProvider
Parameters:
principal - the principal to return it's membership from.
Returns:
an empty principal iterator

init

public void init(Properties options)
Initialize this provider.

Specified by:
init in interface PrincipalProvider
Parameters:
options - the options that are set

close

public void close()
This is called when a provider is not longer used by the repository. An implementation can then release any resources bound to this provider, eg. disconnect from a backend system.

Specified by:
close in interface PrincipalProvider

canReadPrincipal

public boolean canReadPrincipal(Session session,
                                Principal principalToRead)
Tests if the provided session is allowed to read the given principal. Since the principal providers do not restrict the access on the prinicipals they provide, this method is used by the PrincipalManger to ensure proper access rights for the client requesting the principals.

Specified by:
canReadPrincipal in interface PrincipalProvider
principalToRead - The principal to be accessed by the specified subject.
Returns:
true


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