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 Detail

      • ATTEMPTED_AUTHENTICATION_SUFFIX

        public static final java.lang.String ATTEMPTED_AUTHENTICATION_SUFFIX
        See Also:
        Constant Field Values
      • callbackUrl

        protected java.lang.String callbackUrl
    • Constructor Detail

      • IndirectClient

        public IndirectClient()
    • Method Detail

      • newDefaultCallbackUrlResolver

        protected CallbackUrlResolver newDefaultCallbackUrlResolver()
      • getRedirectionAction

        public final java.util.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 java.util.Optional<Credentials> getCredentials​(WebContext context,
                                                                    SessionStore sessionStore)

        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
        Returns:
        the credentials
      • getLogoutAction

        public final java.util.Optional<RedirectionAction> getLogoutAction​(WebContext context,
                                                                           SessionStore sessionStore,
                                                                           UserProfile currentProfile,
                                                                           java.lang.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 java.lang.String computeFinalCallbackUrl​(WebContext context)
      • setCallbackUrl

        public void setCallbackUrl​(java.lang.String callbackUrl)
      • getCallbackUrl

        public java.lang.String getCallbackUrl()
      • setUrlResolver

        public void setUrlResolver​(UrlResolver urlResolver)
      • setCallbackUrlResolver

        public void setCallbackUrlResolver​(CallbackUrlResolver callbackUrlResolver)
      • setAjaxRequestResolver

        public void setAjaxRequestResolver​(AjaxRequestResolver ajaxRequestResolver)
      • defaultRedirectionActionBuilder

        protected void defaultRedirectionActionBuilder​(RedirectionActionBuilder redirectActionBuilder)
      • defaultLogoutActionBuilder

        protected void defaultLogoutActionBuilder​(LogoutActionBuilder logoutActionBuilder)
      • setRedirectionActionBuilder

        public void setRedirectionActionBuilder​(RedirectionActionBuilder redirectionActionBuilder)
      • setLogoutActionBuilder

        public void setLogoutActionBuilder​(LogoutActionBuilder logoutActionBuilder)
      • getStateSessionAttributeName

        public java.lang.String getStateSessionAttributeName()
      • getNonceSessionAttributeName

        public java.lang.String getNonceSessionAttributeName()
      • getCodeVerifierSessionAttributeName

        public java.lang.String getCodeVerifierSessionAttributeName()
      • isCheckAuthenticationAttempt

        public boolean isCheckAuthenticationAttempt()
      • setCheckAuthenticationAttempt

        public void setCheckAuthenticationAttempt​(boolean checkAuthenticationAttempt)