org.apache.catalina.authenticator

## Class SingleSignOnEntry

- java.lang.Object
- - org.apache.catalina.authenticator.SingleSignOnEntry

    public class SingleSignOnEntry
    extends Object

A class that represents entries in the cache of authenticated users. This is necessary to make it available to `AuthenticatorBase` subclasses that need it in order to perform reauthentications when SingleSignOn is in use.

Author:
  B Stansberry, based on work by Craig R. McClanahan
See Also:
  `SingleSignOn`, `AuthenticatorBase.reauthenticateFromSSO(java.lang.String, org.apache.catalina.connector.Request)`

### Field Summary

Fields
`protected String` `authType`
`protected boolean` `canReauthenticate`
`protected String` `password`
`protected Principal` `principal`
`protected Session[]` `sessions`
`protected String` `username`

### Constructor Summary

Constructors
Constructor and Description
`SingleSignOnEntry(Principal principal, String authType, String username, String password)` Creates a new SingleSignOnEntry

### Method Summary

Methods
`void` `addSession(SingleSignOn sso, Session session)` Adds a `Session` to the list of those associated with this SSO.
`Session[]` `findSessions()` Returns the `Session`s associated with this SSO.
`String` `getAuthType()` Gets the name of the authentication type originally used to authenticate the user associated with the SSO.
`boolean` `getCanReauthenticate()` Gets whether the authentication type associated with the original authentication supports reauthentication.
`String` `getPassword()` Gets the password credential (if any) associated with the SSO.
`Principal` `getPrincipal()` Gets the `Principal` that has been authenticated by the SSO.
`String` `getUsername()` Gets the username provided by the user as part of the authentication process.
`void` `removeSession(Session session)` Removes the given `Session` from the list of those associated with this SSO.
`void` `updateCredentials(Principal principal, String authType, String username, String password)` Updates the SingleSignOnEntry to reflect the latest security information associated with the caller.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### authType

    protected String authType

#### password

    protected String password

#### principal

    protected Principal principal

#### sessions

    protected Session[] sessions

#### username

    protected String username

#### canReauthenticate

    protected boolean canReauthenticate

### Constructor Detail

#### SingleSignOnEntry

    public SingleSignOnEntry(Principal principal,
                     String authType,
                     String username,
                     String password)

Creates a new SingleSignOnEntry

Parameters:
  `principal` - the `Principal` returned by the latest call to `Realm.authenticate`.
  `authType` - the type of authenticator used (BASIC, CLIENT_CERT, DIGEST or FORM)
  `username` - the username (if any) used for the authentication
  `password` - the password (if any) used for the authentication

### Method Detail

#### addSession

    public void addSession(SingleSignOn sso,
                  Session session)

Adds a `Session` to the list of those associated with this SSO.

Parameters:
  `sso` - The `SingleSignOn` valve that is managing the SSO session.
  `session` - The `Session` being associated with the SSO.

#### removeSession

    public void removeSession(Session session)

Removes the given `Session` from the list of those associated with this SSO.

Parameters:
  `session` - the `Session` to remove.

#### findSessions

    public Session[] findSessions()

Returns the `Session`s associated with this SSO.

#### getAuthType

    public String getAuthType()

Gets the name of the authentication type originally used to authenticate the user associated with the SSO.

Returns:
  "BASIC", "CLIENT_CERT", "DIGEST", "FORM" or "NONE"

#### getCanReauthenticate

    public boolean getCanReauthenticate()

Gets whether the authentication type associated with the original authentication supports reauthentication.

Returns:
  `true` if `getAuthType` returns "BASIC" or "FORM", `false` otherwise.

#### getPassword

    public String getPassword()

Gets the password credential (if any) associated with the SSO.

Returns:
  the password credential associated with the SSO, or `null` if the original authentication type does not involve a password.

#### getPrincipal

    public Principal getPrincipal()

Gets the `Principal` that has been authenticated by the SSO.

#### getUsername

    public String getUsername()

Gets the username provided by the user as part of the authentication process.

#### updateCredentials

    public void updateCredentials(Principal principal,
                         String authType,
                         String username,
                         String password)

Updates the SingleSignOnEntry to reflect the latest security information associated with the caller.

Parameters:
  `principal` - the `Principal` returned by the latest call to `Realm.authenticate`.
  `authType` - the type of authenticator used (BASIC, CLIENT_CERT, DIGEST or FORM)
  `username` - the username (if any) used for the authentication
  `password` - the password (if any) used for the authentication