org.apache.directory.server.core.authz
Class GroupCache

java.lang.Object
  extended by org.apache.directory.server.core.authz.GroupCache

public class GroupCache
extends java.lang.Object

A cache for tracking static group membership.

Version:
$Rev: 690042 $
Author:
Apache Directory Project

Constructor Summary
GroupCache(CoreSession session)
          Creates a static group cache.
 
Method Summary
 java.util.Set<org.apache.directory.shared.ldap.name.LdapDN> getGroups(java.lang.String member)
          Gets the set of groups a user is a member of.
 void groupAdded(org.apache.directory.shared.ldap.name.LdapDN name, ServerEntry entry)
          Adds a groups members to the cache.
 void groupDeleted(org.apache.directory.shared.ldap.name.LdapDN name, ServerEntry entry)
          Deletes a group's members from the cache.
 void groupModified(org.apache.directory.shared.ldap.name.LdapDN name, java.util.List<org.apache.directory.shared.ldap.entry.Modification> mods, ServerEntry entry, Registries registries)
          Modifies the cache to reflect changes via modify operations to the group entries.
 void groupModified(org.apache.directory.shared.ldap.name.LdapDN name, org.apache.directory.shared.ldap.entry.ModificationOperation modOp, ServerEntry mods)
          Modifies the cache to reflect changes via modify operations to the group entries.
 boolean groupRenamed(org.apache.directory.shared.ldap.name.LdapDN oldName, org.apache.directory.shared.ldap.name.LdapDN newName)
           
 boolean isPrincipalAnAdministrator(org.apache.directory.shared.ldap.name.LdapDN principalDn)
          An optimization.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

GroupCache

public GroupCache(CoreSession session)
           throws java.lang.Exception
Creates a static group cache.

Parameters:
directoryService - the directory service core
Throws:
javax.naming.NamingException - if there are failures on initialization
java.lang.Exception
Method Detail

groupAdded

public void groupAdded(org.apache.directory.shared.ldap.name.LdapDN name,
                       ServerEntry entry)
                throws javax.naming.NamingException
Adds a groups members to the cache. Called by interceptor to account for new group additions.

Parameters:
name - the user provided name for the group entry
entry - the group entry's attributes
Throws:
javax.naming.NamingException - if there are problems accessing the attr values

groupDeleted

public void groupDeleted(org.apache.directory.shared.ldap.name.LdapDN name,
                         ServerEntry entry)
                  throws javax.naming.NamingException
Deletes a group's members from the cache. Called by interceptor to account for the deletion of groups.

Parameters:
name - the normalized DN of the group entry
entry - the attributes of entry being deleted
Throws:
javax.naming.NamingException

groupModified

public void groupModified(org.apache.directory.shared.ldap.name.LdapDN name,
                          java.util.List<org.apache.directory.shared.ldap.entry.Modification> mods,
                          ServerEntry entry,
                          Registries registries)
                   throws javax.naming.NamingException
Modifies the cache to reflect changes via modify operations to the group entries. Called by the interceptor to account for modify ops on groups.

Parameters:
name - the normalized name of the group entry modified
mods - the modification operations being performed
entry - the group entry being modified
Throws:
javax.naming.NamingException - if there are problems accessing attribute values

groupModified

public void groupModified(org.apache.directory.shared.ldap.name.LdapDN name,
                          org.apache.directory.shared.ldap.entry.ModificationOperation modOp,
                          ServerEntry mods)
                   throws javax.naming.NamingException
Modifies the cache to reflect changes via modify operations to the group entries. Called by the interceptor to account for modify ops on groups.

Parameters:
name - the normalized name of the group entry modified
modOp - the modify operation being performed
mods - the modifications being performed
Throws:
javax.naming.NamingException - if there are problems accessing attribute values

isPrincipalAnAdministrator

public final boolean isPrincipalAnAdministrator(org.apache.directory.shared.ldap.name.LdapDN principalDn)
An optimization. By having this method here we can directly access the group membership information and lookup to see if the principalDn is contained within.

Parameters:
principalDn - the normalized DN of the user to check if they are an admin
Returns:
true if the principal is an admin or the admin

getGroups

public java.util.Set<org.apache.directory.shared.ldap.name.LdapDN> getGroups(java.lang.String member)
                                                                      throws javax.naming.NamingException
Gets the set of groups a user is a member of. The groups are returned as normalized Name objects within the set.

Parameters:
member - the member (user) to get the groups for
Returns:
a Set of Name objects representing the groups
Throws:
javax.naming.NamingException - if there are problems accessing attribute values

groupRenamed

public boolean groupRenamed(org.apache.directory.shared.ldap.name.LdapDN oldName,
                            org.apache.directory.shared.ldap.name.LdapDN newName)


Copyright © 2003-2009 Apache Software Foundation. All Rights Reserved.