Apache Tomcat 6.0.53

## org.apache.catalina.realm
Class GenericPrincipal

    java.lang.Object
      org.apache.catalina.realm.GenericPrincipal

All Implemented Interfaces:
  java.security.Principal

    public class GenericPrincipal

extends java.lang.Object
implements java.security.Principal

Generic implementation of java.security.Principal that is available for use by `Realm` implementations.

Author:
  Craig R. McClanahan

Field Summary
`protected javax.security.auth.login.LoginContext` | `loginContext` The JAAS LoginContext, if any, used to authenticate this Principal.
`protected java.lang.String` | `name` The username of the user represented by this Principal.
`protected java.lang.String` | `password` The authentication credentials for the user represented by this Principal.
`protected Realm` | `realm` The Realm with which this Principal is associated.
`protected java.lang.String[]` | `roles` The set of roles associated with this user.
`protected java.security.Principal` | `userPrincipal` The authenticated Principal to be exposed to applications.

Constructor Summary
`GenericPrincipal(Realm realm, java.lang.String name, java.lang.String password)` Construct a new Principal, associated with the specified Realm, for the specified username and password.
`GenericPrincipal(Realm realm, 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(Realm realm, 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(Realm realm, 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).

Method Summary
`java.lang.String` | `getName()`
`java.lang.String` | `getPassword()`
`Realm` | `getRealm()`
`java.lang.String[]` | `getRoles()`
`java.security.Principal` | `getUserPrincipal()`
`boolean` | `hasRole(java.lang.String role)` Does the user represented by this Principal possess the specified role?
`void` | `logout()` Calls logout, if necessary, on any associated JAASLoginContext.
`java.lang.String` | `toString()` Return a String representation of this object, which exposes only information that should be public.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface java.security.Principal
`equals, hashCode`

Field Detail

### name

    protected java.lang.String name

  The username of the user represented by this Principal.

### password

    protected java.lang.String password

  The authentication credentials for the user represented by this Principal.

### realm

    protected Realm realm

  The Realm with which this Principal is associated.

### roles

    protected java.lang.String[] roles

  The set of roles associated with this user.

### userPrincipal

    protected java.security.Principal userPrincipal

  The authenticated Principal to be exposed to applications.

### loginContext

    protected javax.security.auth.login.LoginContext loginContext

  The JAAS LoginContext, if any, used to authenticate this Principal. Kept so we can call logout().

Constructor Detail

### GenericPrincipal

    public GenericPrincipal(Realm realm,
                            java.lang.String name,
                            java.lang.String password)

  Construct a new Principal, associated with the specified Realm, for the specified username and password.

  Parameters:
    `realm` - The Realm that owns this Principal
    `name` - The username of the user represented by this Principal
    `password` - Credentials used to authenticate this user

### GenericPrincipal

    public GenericPrincipal(Realm realm,
                            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:
    `realm` - The Realm that owns this principal
    `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(Realm realm,
                            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:
    `realm` - The Realm that owns this principal
    `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(Realm realm,
                            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:
    `realm` - The Realm that owns this principal
    `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

Method Detail

### getName

    public java.lang.String getName()

  Specified by:
    `getName` in interface `java.security.Principal`

### getPassword

    public java.lang.String getPassword()

### getRealm

    public Realm getRealm()

### getRoles

    public java.lang.String[] getRoles()

### getUserPrincipal

    public java.security.Principal getUserPrincipal()

### 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

### toString

    public java.lang.String toString()

  Return a String representation of this object, which exposes only information that should be public.

  Specified by:
    `toString` in interface `java.security.Principal`
  Overrides:
    `toString` in class `java.lang.Object`

### logout

    public void logout()
                throws java.lang.Exception

  Calls logout, if necessary, on any associated JAASLoginContext. May in the future be extended to cover other logout requirements.

  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

Apache Tomcat 6.0.53

Copyright © 2000-2017 Apache Software Foundation. All Rights Reserved.