Class IndirectClient

All Implemented Interfaces:
Client

public abstract class IndirectClient extends BaseClient
Indirect client: the requested protected URL is saved, the user is redirected to the identity provider for login and back to the application after the sucessful authentication and finally to the originally requested URL.
Since:
1.9.0
Author:
Jerome Leleu
  • Field Details

  • Constructor Details

    • IndirectClient

      public IndirectClient()
  • Method Details

    • beforeInternalInit

      protected void beforeInternalInit(boolean forceReinit)
      Overrides:
      beforeInternalInit in class InitializableObject
    • afterInternalInit

      protected final void afterInternalInit(boolean forceReinit)
      Overrides:
      afterInternalInit in class InitializableObject
    • newDefaultCallbackUrlResolver

      protected CallbackUrlResolver newDefaultCallbackUrlResolver()
    • getRedirectionAction

      public final Optional<RedirectionAction> getRedirectionAction(WebContext context, SessionStore sessionStore)

      If an authentication has already been tried for this client and has failed (null credentials) or if the request is an AJAX one, an unauthorized response is thrown instead of a "redirection".

      Parameters:
      context - context
      sessionStore - the session store
      Returns:
      the "redirection" action
    • getCredentials

      public final Optional<Credentials> getCredentials(WebContext context, SessionStore sessionStore, ProfileManagerFactory profileManagerFactory)

      Get the credentials from the web context. In some cases, a HttpAction may be thrown:

      • if the CasClient receives a logout request, it returns a 200 HTTP status code
      • for the IndirectBasicAuthClient, if no credentials are sent to the callback url, an unauthorized response (401 HTTP status code) is returned to request credentials through a popup.
      Parameters:
      context - the current web context
      sessionStore - the session store
      profileManagerFactory - the profile manager factory
      Returns:
      the credentials
    • getLogoutAction

      public final Optional<RedirectionAction> getLogoutAction(WebContext context, SessionStore sessionStore, UserProfile currentProfile, String targetUrl)
      Description copied from interface: Client

      Return the logout action (indirect clients).

      Parameters:
      context - the current web context
      sessionStore - the session store
      currentProfile - the currentProfile
      targetUrl - the target url after logout
      Returns:
      the redirection to perform (optional)
    • computeFinalCallbackUrl

      public String computeFinalCallbackUrl(WebContext context)
    • defaultRedirectionActionBuilder

      protected void defaultRedirectionActionBuilder(RedirectionActionBuilder redirectActionBuilder)
    • defaultLogoutActionBuilder

      protected void defaultLogoutActionBuilder(LogoutActionBuilder logoutActionBuilder)
    • getStateSessionAttributeName

      public String getStateSessionAttributeName()
    • getNonceSessionAttributeName

      public String getNonceSessionAttributeName()
    • getCodeVerifierSessionAttributeName

      public String getCodeVerifierSessionAttributeName()