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 by Realm implementations.
Author:
Craig R. McClanahan
See Also:
  • Field Details

    • 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 Details

    • 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 Principal
      password - Credentials used to authenticate this user
      roles - 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 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(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 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
    • 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 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 Details

    • getName

      public String getName()
      Specified by:
      getName in interface Principal
    • getPassword

      public String getPassword()
    • getRoles

      public String[] getRoles()
    • getUserPrincipal

      public Principal getUserPrincipal()
      Specified by:
      getUserPrincipal in interface TomcatPrincipal
      Returns:
      The authenticated Principal to be exposed to applications.
    • getGssCredential

      public GSSCredential getGssCredential()
      Specified by:
      getGssCredential in interface TomcatPrincipal
      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:
      true if this Principal has been assigned the given role, otherwise false
    • toString

      public String toString()
      Return a String representation of this object, which exposes only information that should be public.
      Specified by:
      toString in interface Principal
      Overrides:
      toString in class Object
    • logout

      public void logout() throws Exception
      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 interface TomcatPrincipal
      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