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: 498451 $
Author:
Apache Directory Project

Constructor Summary
GroupCache(DirectoryServiceConfiguration factoryCfg)
          Creates a static group cache.
 
Method Summary
 java.util.Set getGroups(java.lang.String member)
          Gets the set of groups a user is a member of.
 void groupAdded(java.lang.String upName, javax.naming.Name normName, javax.naming.directory.Attributes entry)
          Adds a groups members to the cache.
 void groupDeleted(javax.naming.Name name, javax.naming.directory.Attributes entry)
          Deletes a group's members from the cache.
 void groupModified(javax.naming.Name name, int modOp, javax.naming.directory.Attributes mods, javax.naming.directory.Attributes entry)
          Modifies the cache to reflect changes via modify operations to the group entries.
 void groupModified(javax.naming.Name name, org.apache.directory.shared.ldap.message.ModificationItemImpl[] mods, javax.naming.directory.Attributes entry)
          Modifies the cache to reflect changes via modify operations to the group entries.
 boolean groupRenamed(javax.naming.Name oldName, javax.naming.Name 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(DirectoryServiceConfiguration factoryCfg)
           throws javax.naming.NamingException
Creates a static group cache.

Parameters:
factoryCfg - the context factory configuration for the server
Throws:
javax.naming.NamingException
Method Detail

groupAdded

public void groupAdded(java.lang.String upName,
                       javax.naming.Name normName,
                       javax.naming.directory.Attributes entry)
                throws javax.naming.NamingException
Adds a groups members to the cache. Called by interceptor to account for new group additions.

Parameters:
upName - the user provided name for the group entry
normName - the normalized 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(javax.naming.Name name,
                         javax.naming.directory.Attributes entry)
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

groupModified

public void groupModified(javax.naming.Name name,
                          org.apache.directory.shared.ldap.message.ModificationItemImpl[] mods,
                          javax.naming.directory.Attributes entry)
                   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(javax.naming.Name name,
                          int modOp,
                          javax.naming.directory.Attributes mods,
                          javax.naming.directory.Attributes entry)
                   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
entry - the entry being modified
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 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(javax.naming.Name oldName,
                            javax.naming.Name newName)


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