Class IndirectClient<C extends Credentials>

  • All Implemented Interfaces:
    Client<C>

    public abstract class IndirectClient<C extends Credentials>
    extends BaseClient<C>
    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
    • Constructor Detail

      • IndirectClient

        public IndirectClient()
    • Method Detail

      • newDefaultCallbackUrlResolver

        protected CallbackUrlResolver newDefaultCallbackUrlResolver()
      • clientInit

        protected abstract void clientInit()
        Initialize the client.
      • getRedirectionAction

        public final Optional<RedirectionAction> getRedirectionAction​(WebContext context)

        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
        Returns:
        the "redirection" action
      • getCredentials

        public final Optional<C> getCredentials​(WebContext context)

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

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

        Return the logout action (indirect clients).

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

        public String computeFinalCallbackUrl​(WebContext context)
      • setCallbackUrl

        public void setCallbackUrl​(String callbackUrl)
      • getCallbackUrl

        public 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 String getStateSessionAttributeName()
      • getNonceSessionAttributeName

        public String getNonceSessionAttributeName()