Class SAML2WebAuthenticationPlugin

java.lang.Object
io.vertigo.vega.plugins.authentication.saml2.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 Details

    • SAML2WebAuthenticationPlugin

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

    • 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<jakarta.servlet.http.HttpServletRequest,jakarta.servlet.http.HttpServletResponse,io.vertigo.core.lang.Tuple<Boolean,jakarta.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
    • getCallbackUrl

      public String getCallbackUrl()
      Returns the url for callback
      Specified by:
      getCallbackUrl in interface WebAuthenticationPlugin<org.opensaml.saml.saml2.core.Assertion>
      Returns:
      url for callback
    • getLogoutUrl

      public String getLogoutUrl()
      Returns the url for logout
      Specified by:
      getLogoutUrl in interface WebAuthenticationPlugin<org.opensaml.saml.saml2.core.Assertion>
      Returns:
      url for logout
    • 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(jakarta.servlet.http.HttpServletRequest request, jakarta.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(jakarta.servlet.http.HttpServletRequest httpRequest, jakarta.servlet.http.HttpServletResponse httpResponse)
      Specified by:
      doLogout in interface WebAuthenticationPlugin<org.opensaml.saml.saml2.core.Assertion>
    • getRequestedUri

      public Optional<String> getRequestedUri(jakarta.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(jakarta.servlet.http.HttpServletRequest httpRequest, jakarta.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