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
Generic implementation of java.security.Principal that is available for use by
Realm
implementations.- Author:
- Craig R. McClanahan
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionprotected GSSCredential
The user's delegated credentials.protected final LoginContext
The JAAS LoginContext, if any, used to authenticate this Principal.protected final String
The username of the user represented by this Principal.protected final String
The authentication credentials for the user represented by this Principal.protected final String[]
The set of roles associated with this user.protected final Principal
The authenticated Principal to be exposed to applications. -
Constructor Summary
ConstructorDescriptionGenericPrincipal
(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).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
Modifier and TypeMethodDescriptiongetName()
String[]
getRoles()
boolean
Does the user represented by this Principal possess the specified role?void
logout()
Calls logout, if necessary, on any associated JAASLoginContext.protected void
setGssCredential
(GSSCredential gssCredential) toString()
Return a String representation of this object, which exposes only information that should be public.
-
Field Details
-
name
The username of the user represented by this Principal. -
password
The authentication credentials for the user represented by this Principal. -
roles
The set of roles associated with this user. -
userPrincipal
The authenticated Principal to be exposed to applications. -
loginContext
The JAAS LoginContext, if any, used to authenticate this Principal. Kept so we can call logout(). -
gssCredential
The user's delegated credentials.
-
-
Constructor Details
-
GenericPrincipal
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
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 Details
-
getName
-
getPassword
-
getRoles
-
getUserPrincipal
- Specified by:
getUserPrincipal
in interfaceTomcatPrincipal
- Returns:
- The authenticated Principal to be exposed to applications.
-
getGssCredential
- Specified by:
getGssCredential
in interfaceTomcatPrincipal
- Returns:
- The user's delegated credentials.
-
setGssCredential
-
hasRole
Does the user represented by this Principal possess the specified role?- Parameters:
role
- Role to be tested- Returns:
true
if this Principal has been assigned the given role, otherwisefalse
-
toString
Return a String representation of this object, which exposes only information that should be public. -
logout
Description copied from interface:TomcatPrincipal
Calls logout, if necessary, on any associated JAASLoginContext. May in the future be extended to cover other logout requirements.- Specified by:
logout
in 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
-