Package org.apache.catalina.realm
Class GenericPrincipal
- java.lang.Object
-
- org.apache.catalina.realm.GenericPrincipal
-
- All Implemented Interfaces:
Serializable,Principal,TomcatPrincipal
- Direct Known Subclasses:
UserDatabaseRealm.UserDatabasePrincipal
public class GenericPrincipal extends Object implements TomcatPrincipal, 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 GSSCredentialgssCredentialThe user's delegated credentials.protected LoginContextloginContextThe JAAS LoginContext, if any, used to authenticate this Principal.protected StringnameThe username of the user represented by this Principal.protected StringpasswordThe authentication credentials for the user represented by this Principal.protected String[]rolesThe set of roles associated with this user.protected PrincipaluserPrincipalThe authenticated Principal to be exposed to applications.
-
Constructor Summary
Constructors Constructor Description GenericPrincipal(String name, String password, List<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(String name, String password, List<String> roles, 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(String name, String password, List<String> roles, Principal userPrincipal, 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(String name, String password, List<String> roles, Principal userPrincipal, LoginContext loginContext, 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 GSSCredentialgetGssCredential()StringgetName()StringgetPassword()String[]getRoles()PrincipalgetUserPrincipal()booleanhasRole(String role)Does the user represented by this Principal possess the specified role?voidlogout()Calls logout, if necessary, on any associated JAASLoginContext.protected voidsetGssCredential(GSSCredential gssCredential)StringtoString()Return a String representation of this object, which exposes only information that should be public.
-
-
-
Field Detail
-
name
protected final String name
The username of the user represented by this Principal.
-
password
protected final String password
The authentication credentials for the user represented by this Principal.
-
roles
protected final String[] roles
The set of roles associated with this user.
-
userPrincipal
protected final Principal userPrincipal
The authenticated Principal to be exposed to applications.
-
loginContext
protected final transient LoginContext loginContext
The JAAS LoginContext, if any, used to authenticate this Principal. Kept so we can call logout().
-
gssCredential
protected transient GSSCredential gssCredential
The user's delegated credentials.
-
-
Constructor Detail
-
GenericPrincipal
public GenericPrincipal(String name, String password, List<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(String name, String password, List<String> roles, 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(String name, String password, List<String> roles, Principal userPrincipal, 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(String name, String password, List<String> roles, Principal userPrincipal, LoginContext loginContext, 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
-
getPassword
public String getPassword()
-
getRoles
public String[] getRoles()
-
getUserPrincipal
public Principal getUserPrincipal()
- Specified by:
getUserPrincipalin interfaceTomcatPrincipal- Returns:
- The authenticated Principal to be exposed to applications.
-
getGssCredential
public GSSCredential getGssCredential()
- Specified by:
getGssCredentialin interfaceTomcatPrincipal- Returns:
- The user's delegated credentials.
-
setGssCredential
protected void setGssCredential(GSSCredential gssCredential)
-
hasRole
public boolean hasRole(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 String toString()
Return a String representation of this object, which exposes only information that should be public.
-
logout
public void logout() throws ExceptionCalls logout, if necessary, on any associated JAASLoginContext. May in the future be extended to cover other logout requirements.- Specified by:
logoutin interfaceTomcatPrincipal- Throws:
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
-
-