org.apache.catalina.realm
Class GenericPrincipal

java.lang.Object
  extended by org.apache.catalina.realm.GenericPrincipal
All Implemented Interfaces:
java.security.Principal

public class GenericPrincipal
extends java.lang.Object
implements java.security.Principal

Generic implementation of java.security.Principal that is available for use by Realm implementations.

Version:
$Revision: 1237 $ $Date: 2009-11-03 02:55:48 +0100 (Tue, 03 Nov 2009) $
Author:
Craig R. McClanahan

Field Summary
protected  javax.security.auth.login.LoginContext loginContext
          The JAAS LoginContext, if any, used to authenticate this Principal.
protected  java.lang.String name
          The username of the user represented by this Principal.
protected  java.lang.String password
          The authentication credentials for the user represented by this Principal.
protected  Realm realm
          The Realm with which this Principal is associated.
protected  java.lang.String[] roles
          The set of roles associated with this user.
protected  java.security.Principal userPrincipal
          The authenticated Principal to be exposed to applications.
 
Constructor Summary
GenericPrincipal(Realm realm, java.lang.String name, java.lang.String password)
          Construct a new Principal, associated with the specified Realm, for the specified username and password.
GenericPrincipal(Realm realm, java.lang.String name, java.lang.String password, java.util.List<java.lang.String> roles)
          Construct a new Principal, associated with the specified Realm, for the specified username and password, with the specified role names (as Strings).
GenericPrincipal(Realm realm, java.lang.String name, java.lang.String password, java.util.List<java.lang.String> roles, java.security.Principal userPrincipal)
          Construct a new Principal, associated with the specified Realm, for the specified username and password, with the specified role names (as Strings).
GenericPrincipal(Realm realm, java.lang.String name, java.lang.String password, java.util.List<java.lang.String> roles, java.security.Principal userPrincipal, javax.security.auth.login.LoginContext loginContext)
          Construct a new Principal, associated with the specified Realm, for the specified username and password, with the specified role names (as Strings).
 
Method Summary
 java.lang.String getName()
           
 java.lang.String getPassword()
           
 Realm getRealm()
           
 java.lang.String[] getRoles()
           
 java.security.Principal getUserPrincipal()
           
 boolean hasRole(java.lang.String role)
          Does the user represented by this Principal possess the specified role?
 void logout()
          Calls logout, if necessary, on any associated JAASLoginContext.
 java.lang.String toString()
          Return a String representation of this object, which exposes only information that should be public.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.security.Principal
equals, hashCode
 

Field Detail

name

protected java.lang.String name
The username of the user represented by this Principal.


password

protected java.lang.String password
The authentication credentials for the user represented by this Principal.


realm

protected Realm realm
The Realm with which this Principal is associated.


roles

protected java.lang.String[] roles
The set of roles associated with this user.


userPrincipal

protected java.security.Principal userPrincipal
The authenticated Principal to be exposed to applications.


loginContext

protected javax.security.auth.login.LoginContext loginContext
The JAAS LoginContext, if any, used to authenticate this Principal. Kept so we can call logout().

Constructor Detail

GenericPrincipal

public GenericPrincipal(Realm realm,
                        java.lang.String name,
                        java.lang.String password)
Construct a new Principal, associated with the specified Realm, for the specified username and password.

Parameters:
realm - The Realm that owns this Principal
name - The username of the user represented by this Principal
password - Credentials used to authenticate this user

GenericPrincipal

public GenericPrincipal(Realm realm,
                        java.lang.String name,
                        java.lang.String password,
                        java.util.List<java.lang.String> roles)
Construct a new Principal, associated with the specified Realm, for the specified username and password, with the specified role names (as Strings).

Parameters:
realm - The Realm that owns this principal
name - The username of the user represented by this Principal
password - Credentials used to authenticate this user
roles - List of roles (must be Strings) possessed by this user

GenericPrincipal

public GenericPrincipal(Realm realm,
                        java.lang.String name,
                        java.lang.String password,
                        java.util.List<java.lang.String> roles,
                        java.security.Principal userPrincipal)
Construct a new Principal, associated with the specified Realm, for the specified username and password, with the specified role names (as Strings).

Parameters:
realm - The Realm that owns this principal
name - The username of the user represented by this Principal
password - Credentials used to authenticate this user
roles - List of roles (must be Strings) possessed by this user
userPrincipal - - the principal to be returned from the request getUserPrincipal call if not null; if null, this will be returned

GenericPrincipal

public GenericPrincipal(Realm realm,
                        java.lang.String name,
                        java.lang.String password,
                        java.util.List<java.lang.String> roles,
                        java.security.Principal userPrincipal,
                        javax.security.auth.login.LoginContext loginContext)
Construct a new Principal, associated with the specified Realm, for the specified username and password, with the specified role names (as Strings).

Parameters:
realm - The Realm that owns this principal
name - The username of the user represented by this Principal
password - Credentials used to authenticate this user
roles - List of roles (must be Strings) possessed by this user
userPrincipal - - the principal to be returned from the request getUserPrincipal call if not null; if null, this will be returned
loginContext - - If provided, this will be used to log out the user at the appropriate time
Method Detail

getName

public java.lang.String getName()
Specified by:
getName in interface java.security.Principal

getPassword

public java.lang.String getPassword()

getRealm

public Realm getRealm()

getRoles

public java.lang.String[] getRoles()

getUserPrincipal

public java.security.Principal getUserPrincipal()

hasRole

public boolean hasRole(java.lang.String role)
Does the user represented by this Principal possess the specified role?

Parameters:
role - Role to be tested

logout

public void logout()
            throws java.lang.Exception
Calls logout, if necessary, on any associated JAASLoginContext. May in the future be extended to cover other logout requirements.

Throws:
java.lang.Exception - If something goes wrong with the logout. Uses Exception to allow for future expansion of this method to cover other logout mechanisms that might throw a different exception to LoginContext

toString

public java.lang.String toString()
Return a String representation of this object, which exposes only information that should be public.

Specified by:
toString in interface java.security.Principal
Overrides:
toString in class java.lang.Object


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