Class KeycloakAuthenticationPlugin

java.lang.Object
org.nuxeo.ecm.platform.ui.web.keycloak.KeycloakAuthenticationPlugin
All Implemented Interfaces:
NuxeoAuthenticationPlugin, NuxeoAuthenticationPluginLogoutExtension

public class KeycloakAuthenticationPlugin extends Object implements NuxeoAuthenticationPlugin, NuxeoAuthenticationPluginLogoutExtension
Authentication plugin for handling auth flow with Keyloack
Since:
7.4
  • Field Details

  • Constructor Details

    • KeycloakAuthenticationPlugin

      public KeycloakAuthenticationPlugin()
  • Method Details

    • initPlugin

      public void initPlugin(Map<String,String> parameters)
      Description copied from interface: NuxeoAuthenticationPlugin
      Initializes the Plugin from parameters set in the XML descriptor.
      Specified by:
      initPlugin in interface NuxeoAuthenticationPlugin
    • createAuthenticationProvider

      protected KeycloakAuthenticatorProvider createAuthenticationProvider(org.keycloak.adapters.AdapterDeploymentContext kdc)
    • needLoginPrompt

      public Boolean needLoginPrompt(javax.servlet.http.HttpServletRequest httpRequest)
      Description copied from interface: NuxeoAuthenticationPlugin
      Defines if the authentication plugin needs to do a login prompt.
      Specified by:
      needLoginPrompt in interface NuxeoAuthenticationPlugin
      Returns:
      true if LoginPrompt is used
    • handleLoginPrompt

      public Boolean handleLoginPrompt(javax.servlet.http.HttpServletRequest httpRequest, javax.servlet.http.HttpServletResponse httpResponse, String baseURL)
      Description copied from interface: NuxeoAuthenticationPlugin
      Handles the Login Prompt.
      Specified by:
      handleLoginPrompt in interface NuxeoAuthenticationPlugin
      Parameters:
      httpRequest - the request
      httpResponse - the response
      Returns:
      true if AuthFilter must stop execution (ie: login prompt generated a redirect), false otherwise
    • getUnAuthenticatedURLPrefix

      public List<String> getUnAuthenticatedURLPrefix()
      Description copied from interface: NuxeoAuthenticationPlugin
      Returns the list of prefix for unauthenticated URLs, typically the URLs associated to login prompt.
      Specified by:
      getUnAuthenticatedURLPrefix in interface NuxeoAuthenticationPlugin
    • handleRetrieveIdentity

      public UserIdentificationInfo handleRetrieveIdentity(javax.servlet.http.HttpServletRequest httpRequest, javax.servlet.http.HttpServletResponse httpResponse)
      Description copied from interface: NuxeoAuthenticationPlugin
      Retrieves user identification information from the request.
      Specified by:
      handleRetrieveIdentity in interface NuxeoAuthenticationPlugin
      Parameters:
      httpRequest - the request
      httpResponse - the response
    • handleLogout

      public Boolean handleLogout(javax.servlet.http.HttpServletRequest httpRequest, javax.servlet.http.HttpServletResponse httpResponse)
      Description copied from interface: NuxeoAuthenticationPluginLogoutExtension
      Handles logout operation.

      Generic logout (killing session and Seam objects) is done by LogoutActionBean This interface must be implemented by auth plugin when the target auth system needs a specific logout procedure.

      Specified by:
      handleLogout in interface NuxeoAuthenticationPluginLogoutExtension
      Returns:
      true if caller must stop execution (ie: logout generated a redirect), false otherwise
    • getKeycloakUserInfo

      protected KeycloakUserInfo getKeycloakUserInfo(org.keycloak.representations.AccessToken token)
      Get keycloak user's information from authentication token
      Parameters:
      token - the keycoak authentication token
      Returns:
      keycloak user's information
    • getRoles

      protected Set<String> getRoles(org.keycloak.representations.AccessToken token, String keycloakNuxeoApp)
      Get keycloak user's roles from authentication token
      Parameters:
      token - the keycoak authentication token
      keycloakNuxeoApp - the keycoak resource name
      Returns:
      keycloak user's roles
    • setKeycloakAuthenticatorProvider

      public void setKeycloakAuthenticatorProvider(KeycloakAuthenticatorProvider keycloakAuthenticatorProvider)