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 Summary
Fields 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 Summary
Constructors 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 Summary
All 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
-
name
protected final java.lang.String name
The username of the user represented by this Principal.
-
password
protected final java.lang.String password
The authentication credentials for the user represented by this Principal.
-
roles
protected final java.lang.String[] roles
The set of roles associated with this user.
-
userPrincipal
protected final java.security.Principal userPrincipal
The authenticated Principal to be exposed to applications.
-
loginContext
protected final transient javax.security.auth.login.LoginContext loginContext
The JAAS LoginContext, if any, used to authenticate this Principal. Kept so we can call logout().
-
gssCredential
protected transient org.ietf.jgss.GSSCredential gssCredential
The user's delegated credentials.
-
-
Constructor Detail
-
GenericPrincipal
public 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 Principalpassword- Credentials used to authenticate this userroles- List of roles (must be Strings) possessed by this user
-
GenericPrincipal
public 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 Principalpassword- Credentials used to authenticate this userroles- List of roles (must be Strings) possessed by this useruserPrincipal- - the principal to be returned from the request getUserPrincipal call if not null; if null, this will be returned
-
GenericPrincipal
public 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 Principalpassword- Credentials used to authenticate this userroles- List of roles (must be Strings) possessed by this useruserPrincipal- - the principal to be returned from the request getUserPrincipal call if not null; if null, this will be returnedloginContext- - If provided, this will be used to log out the user at the appropriate time
-
GenericPrincipal
public 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 Principalpassword- Credentials used to authenticate this userroles- List of roles (must be Strings) possessed by this useruserPrincipal- - the principal to be returned from the request getUserPrincipal call if not null; if null, this will be returnedloginContext- - If provided, this will be used to log out the user at the appropriate timegssCredential- - If provided, the user's delegated credentials
-
-
Method Detail
-
getName
public java.lang.String getName()
- Specified by:
getNamein interfacejava.security.Principal
-
getPassword
public java.lang.String getPassword()
-
getRoles
public java.lang.String[] getRoles()
-
getUserPrincipal
public java.security.Principal getUserPrincipal()
- Specified by:
getUserPrincipalin interfaceTomcatPrincipal- Returns:
- The authenticated Principal to be exposed to applications.
-
getGssCredential
public org.ietf.jgss.GSSCredential getGssCredential()
- Specified by:
getGssCredentialin interfaceTomcatPrincipal- Returns:
- The user's delegated credentials.
-
setGssCredential
protected void setGssCredential(org.ietf.jgss.GSSCredential gssCredential)
-
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- Returns:
trueif this Principal has been assigned the given role, otherwisefalse
-
toString
public java.lang.String toString()
Return a String representation of this object, which exposes only information that should be public.- Specified by:
toStringin interfacejava.security.Principal- Overrides:
toStringin classjava.lang.Object
-
logout
public void logout() throws java.lang.ExceptionDescription copied from interface:TomcatPrincipalCalls logout, if necessary, on any associated JAASLoginContext. May in the future be extended to cover other logout requirements.- Specified by:
logoutin interfaceTomcatPrincipal- 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
-
-