Class SAML2WebAuthenticationPlugin

  • All Implemented Interfaces:
    io.vertigo.core.node.component.CoreComponent, io.vertigo.core.node.component.Plugin, WebAuthenticationPlugin<org.opensaml.saml.saml2.core.Assertion>

    public class SAML2WebAuthenticationPlugin
    extends Object
    implements WebAuthenticationPlugin<org.opensaml.saml.saml2.core.Assertion>
    Base authentication handler for SAML2.
    Author:
    skerdudou
    • Constructor Detail

      • SAML2WebAuthenticationPlugin

        @Inject
        public SAML2WebAuthenticationPlugin​(Optional<String> urlPrefixOpt,
                                            Optional<String> urlHandlerPrefixOpt,
                                            Optional<String> connectorNameOpt,
                                            List<io.vertigo.connectors.saml2.SAML2DeploymentConnector> saml2DeploymentConnectors)
    • Method Detail

      • getUrlPrefix

        public String getUrlPrefix()
        Url prefix of urls that are protected with this authentication plugin
        Specified by:
        getUrlPrefix in interface WebAuthenticationPlugin<org.opensaml.saml.saml2.core.Assertion>
        Returns:
        the prefix
      • getUrlHandlerPrefix

        public String getUrlHandlerPrefix()
        Url prefix of request directly handled by the plugin
        Specified by:
        getUrlHandlerPrefix in interface WebAuthenticationPlugin<org.opensaml.saml.saml2.core.Assertion>
        Returns:
        the prefix
      • getUrlHandlers

        public Map<String,​BiFunction<javax.servlet.http.HttpServletRequest,​javax.servlet.http.HttpServletResponse,​io.vertigo.core.lang.Tuple<Boolean,​javax.servlet.http.HttpServletRequest>>> getUrlHandlers()
        Register additionnal handler for specific request necessary for the plugin
        Specified by:
        getUrlHandlers in interface WebAuthenticationPlugin<org.opensaml.saml.saml2.core.Assertion>
        Returns:
        le map of specific handlers
      • getExternalUrlOptional

        public Optional<String> getExternalUrlOptional()
        Return an optional external url of the application (if it is behind a firewall or a proxy)
        Specified by:
        getExternalUrlOptional in interface WebAuthenticationPlugin<org.opensaml.saml.saml2.core.Assertion>
        Returns:
        the external url of the app : as seen by the end user
      • doRedirectToSso

        public void doRedirectToSso​(javax.servlet.http.HttpServletRequest request,
                                    javax.servlet.http.HttpServletResponse response)
        Handle the redirect to the sso login page
        Specified by:
        doRedirectToSso in interface WebAuthenticationPlugin<org.opensaml.saml.saml2.core.Assertion>
        Parameters:
        request - the request
        response - the response to consume
      • doLogout

        public boolean doLogout​(javax.servlet.http.HttpServletRequest httpRequest,
                                javax.servlet.http.HttpServletResponse httpResponse)
        Specified by:
        doLogout in interface WebAuthenticationPlugin<org.opensaml.saml.saml2.core.Assertion>
      • getRequestedUri

        public Optional<String> getRequestedUri​(javax.servlet.http.HttpServletRequest httpRequest)
        Return the original request a user wanted before beeing redirected to the sso
        Specified by:
        getRequestedUri in interface WebAuthenticationPlugin<org.opensaml.saml.saml2.core.Assertion>
        Parameters:
        httpRequest - the request
        Returns:
        the uri
      • doHandleCallback

        public AuthenticationResult<org.opensaml.saml.saml2.core.Assertion> doHandleCallback​(javax.servlet.http.HttpServletRequest httpRequest,
                                                                                             javax.servlet.http.HttpServletResponse httpResponse)
        Description copied from interface: WebAuthenticationPlugin
        Handle the callback request after login on the sso
        Specified by:
        doHandleCallback in interface WebAuthenticationPlugin<org.opensaml.saml.saml2.core.Assertion>
        Parameters:
        httpRequest - the request
        httpResponse - the response to consume
        Returns:
        result of login challenge, providing info of the logged in user