org.jboss.security
Class NestableGroup

java.lang.Object
  extended by org.jboss.security.SimplePrincipal
      extended by org.jboss.security.NestableGroup
All Implemented Interfaces:
Serializable, Cloneable, Group, Principal

public class NestableGroup
extends SimplePrincipal
implements Group, Cloneable

An implementation of Group that allows that acts as a stack of Groups with a single Group member active at any time. When one adds a Group to a NestableGroup the Group is pushed onto the active Group stack and any of the Group methods operate as though the NestableGroup contains only the Group. When removing the Group that corresponds to the active Group, the active Group is popped from the stack and the new active Group is set to the new top of the stack. The typical usage of this class is when doing a JAAS LoginContext login to runAs a new Principal with a new set of roles that should be added without destroying the current identity and roles.

Version:
$Revision: 1.7.6.4 $
Author:
Scott.Stark@jboss.org
See Also:
Serialized Form

Constructor Summary
NestableGroup(String name)
          Creates new NestableGroup with the given name
 
Method Summary
 boolean addMember(Principal group)
          Pushes the group onto the Group stack and makes it the active Group.
 Object clone()
           
 boolean isMember(Principal member)
          Returns true if the passed principal is a member of the active group.
 Enumeration members()
          Returns an enumeration that contains the single active Principal.
 boolean removeMember(Principal user)
          Removes the first occurence of user from the Principal stack.
 String toString()
           
 
Methods inherited from class org.jboss.security.SimplePrincipal
equals, getName, hashCode
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.security.Principal
equals, getName, hashCode
 

Constructor Detail

NestableGroup

public NestableGroup(String name)
Creates new NestableGroup with the given name

Method Detail

members

public Enumeration members()
Returns an enumeration that contains the single active Principal.

Specified by:
members in interface Group
Returns:
an Enumeration of the single active Principal.

removeMember

public boolean removeMember(Principal user)
Removes the first occurence of user from the Principal stack.

Specified by:
removeMember in interface Group
Parameters:
user - the principal to remove from this group.
Returns:
true if the principal was removed, or false if the principal was not a member.

addMember

public boolean addMember(Principal group)
                  throws IllegalArgumentException
Pushes the group onto the Group stack and makes it the active Group.

Specified by:
addMember in interface Group
Parameters:
group - the instance of Group that contains the roles to set as the active Group.
Returns:
true always.
Throws:
IllegalArgumentException - thrown if group is not an instance of Group.

isMember

public boolean isMember(Principal member)
Returns true if the passed principal is a member of the active group. This method does a recursive search, so if a principal belongs to a group which is a member of this group, true is returned.

Specified by:
isMember in interface Group
Parameters:
member - the principal whose membership is to be checked.
Returns:
true if the principal is a member of this group, false otherwise.

toString

public String toString()
Specified by:
toString in interface Principal
Overrides:
toString in class SimplePrincipal

clone

public Object clone()
             throws CloneNotSupportedException
Overrides:
clone in class Object
Throws:
CloneNotSupportedException


Copyright © 2002 JBoss Group, LLC. All Rights Reserved.