Package org.apache.catalina.realm
Class GenericPrincipal
- java.lang.Object
- 
- org.apache.catalina.realm.GenericPrincipal
 
- 
- All Implemented Interfaces:
- java.io.Serializable,- java.security.Principal,- TomcatPrincipal
 - Direct Known Subclasses:
- UserDatabaseRealm.UserDatabasePrincipal
 
 public class GenericPrincipal extends java.lang.Object implements TomcatPrincipal, java.io.Serializable Generic implementation of java.security.Principal that is available for use byRealmimplementations.- Author:
- Craig R. McClanahan
- See Also:
- Serialized Form
 
- 
- 
Field SummaryFields Modifier and Type Field Description protected org.ietf.jgss.GSSCredentialgssCredentialThe user's delegated credentials.protected javax.security.auth.login.LoginContextloginContextThe JAAS LoginContext, if any, used to authenticate this Principal.protected java.lang.StringnameThe username of the user represented by this Principal.protected java.lang.StringpasswordThe authentication credentials for the user represented by this Principal.protected java.lang.String[]rolesThe set of roles associated with this user.protected java.security.PrincipaluserPrincipalThe authenticated Principal to be exposed to applications.
 - 
Constructor SummaryConstructors Constructor Description GenericPrincipal(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(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(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).GenericPrincipal(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, org.ietf.jgss.GSSCredential gssCredential)Construct a new Principal, associated with the specified Realm, for the specified username and password, with the specified role names (as Strings).
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description org.ietf.jgss.GSSCredentialgetGssCredential()java.lang.StringgetName()java.lang.StringgetPassword()java.lang.String[]getRoles()java.security.PrincipalgetUserPrincipal()booleanhasRole(java.lang.String role)Does the user represented by this Principal possess the specified role?voidlogout()Calls logout, if necessary, on any associated JAASLoginContext.protected voidsetGssCredential(org.ietf.jgss.GSSCredential gssCredential)java.lang.StringtoString()Return a String representation of this object, which exposes only information that should be public.
 
- 
- 
- 
Field Detail- 
nameprotected final java.lang.String name The username of the user represented by this Principal.
 - 
passwordprotected final java.lang.String password The authentication credentials for the user represented by this Principal.
 - 
rolesprotected final java.lang.String[] roles The set of roles associated with this user.
 - 
userPrincipalprotected final java.security.Principal userPrincipal The authenticated Principal to be exposed to applications.
 - 
loginContextprotected final transient javax.security.auth.login.LoginContext loginContext The JAAS LoginContext, if any, used to authenticate this Principal. Kept so we can call logout().
 - 
gssCredentialprotected transient org.ietf.jgss.GSSCredential gssCredential The user's delegated credentials.
 
- 
 - 
Constructor Detail- 
GenericPrincipalpublic GenericPrincipal(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:
- 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
 
 - 
GenericPrincipalpublic GenericPrincipal(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:
- 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
 
 - 
GenericPrincipalpublic GenericPrincipal(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:
- 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
 
 - 
GenericPrincipalpublic GenericPrincipal(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, org.ietf.jgss.GSSCredential gssCredential)Construct a new Principal, associated with the specified Realm, for the specified username and password, with the specified role names (as Strings).- Parameters:
- 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
- gssCredential- - If provided, the user's delegated credentials
 
 
- 
 - 
Method Detail- 
getNamepublic java.lang.String getName() - Specified by:
- getNamein interface- java.security.Principal
 
 - 
getPasswordpublic java.lang.String getPassword() 
 - 
getRolespublic java.lang.String[] getRoles() 
 - 
getUserPrincipalpublic java.security.Principal getUserPrincipal() - Specified by:
- getUserPrincipalin interface- TomcatPrincipal
- Returns:
- The authenticated Principal to be exposed to applications.
 
 - 
getGssCredentialpublic org.ietf.jgss.GSSCredential getGssCredential() - Specified by:
- getGssCredentialin interface- TomcatPrincipal
- Returns:
- The user's delegated credentials.
 
 - 
setGssCredentialprotected void setGssCredential(org.ietf.jgss.GSSCredential gssCredential) 
 - 
hasRolepublic boolean hasRole(java.lang.String role) Does the user represented by this Principal possess the specified role?- Parameters:
- role- Role to be tested
- Returns:
- trueif this Principal has been assigned the given role, otherwise- false
 
 - 
toStringpublic java.lang.String toString() Return a String representation of this object, which exposes only information that should be public.- Specified by:
- toStringin interface- java.security.Principal
- Overrides:
- toStringin class- java.lang.Object
 
 - 
logoutpublic void logout() throws java.lang.ExceptionCalls logout, if necessary, on any associated JAASLoginContext. May in the future be extended to cover other logout requirements.- Specified by:
- logoutin interface- TomcatPrincipal
- 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
 
 
- 
 
-