org.apache.catalina.authenticator

## Class SingleSignOnEntry

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

- All Implemented Interfaces:
    Serializable

      public class SingleSignOnEntry
      extends Object
      implements Serializable

  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)`, Serialized Form

- - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addSession(SingleSignOn sso, String ssoId, Session session)` Adds a `Session` to the list of those associated with this SSO.
    `Set<SingleSignOnSessionKey>` | `findSessions()` Returns the HTTP Session identifiers 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 user name 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`

- - ### 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,
                                 String ssoId,
                                 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.
        `ssoId` - The ID of 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 Set<SingleSignOnSessionKey> findSessions()

      Returns the HTTP Session identifiers associated with this SSO.
      Returns:
        The identifiers for the HTTP sessions that are current associated with this SSo entry

    - #### 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.
      Returns:
        The Principal that was created by the authentication that triggered the creation of the SSO entry

    - #### getUsername

          public String getUsername()

      Gets the user name provided by the user as part of the authentication process.
      Returns:
        The user name that was authenticated as part of the authentication that triggered the creation of the SSO entry

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

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