Class ProviderLoginSupportImpl

java.lang.Object
org.craftercms.security.social.impl.ProviderLoginSupportImpl
All Implemented Interfaces:
ProviderLoginSupport

public class ProviderLoginSupportImpl extends Object implements ProviderLoginSupport
Default implementation of ProviderLoginSupport. On complete(String, String, HttpServletRequest), if the user data of the provider connection corresponds to an existing Crafter Profile user, the profile connection data will be updated. If a profile doesn't exist, a new one with the connection data will be created. In both cases, the user is automatically authenticated with Crafter Profile.
Author:
avasquez
  • Field Details

    • PARAM_OAUTH_TOKEN

      public static final String PARAM_OAUTH_TOKEN
      See Also:
    • PARAM_CODE

      public static final String PARAM_CODE
      See Also:
    • PARAM_ERROR

      public static final String PARAM_ERROR
      See Also:
    • PARAM_ERROR_DESCRIPTION

      public static final String PARAM_ERROR_DESCRIPTION
      See Also:
    • PARAM_ERROR_URI

      public static final String PARAM_ERROR_URI
      See Also:
    • connectSupport

      protected org.springframework.social.connect.web.ConnectSupport connectSupport
    • connectionFactoryLocator

      protected org.springframework.social.connect.ConnectionFactoryLocator connectionFactoryLocator
    • profileService

      protected ProfileService profileService
    • authenticationManager

      protected AuthenticationManager authenticationManager
    • textEncryptor

      protected org.craftercms.commons.crypto.TextEncryptor textEncryptor
  • Constructor Details

    • ProviderLoginSupportImpl

      public ProviderLoginSupportImpl()
  • Method Details

    • setConnectSupport

      public void setConnectSupport(org.springframework.social.connect.web.ConnectSupport connectSupport)
    • setConnectionFactoryLocator

      public void setConnectionFactoryLocator(org.springframework.social.connect.ConnectionFactoryLocator connectionFactoryLocator)
    • setProfileService

      public void setProfileService(ProfileService profileService)
    • setAuthenticationManager

      public void setAuthenticationManager(AuthenticationManager authenticationManager)
    • setTextEncryptor

      public void setTextEncryptor(org.craftercms.commons.crypto.TextEncryptor textEncryptor)
    • start

      public String start(String tenant, String providerId, javax.servlet.http.HttpServletRequest request) throws AuthenticationException
      Description copied from interface: ProviderLoginSupport
      Starts the OAuth login process. Returns a URL that the app should redirect to.
      Specified by:
      start in interface ProviderLoginSupport
      Parameters:
      tenant - the current tenant the authenticated user belongs too
      providerId - the social service provider ID: facebook, twitter, linkedin
      request - the current request
      Returns:
      the provider specific URL the current app should redirect too.
      Throws:
      AuthenticationException
    • start

      public String start(String tenant, String providerId, javax.servlet.http.HttpServletRequest request, org.springframework.util.MultiValueMap<String,String> additionalUrlParams) throws AuthenticationException
      Description copied from interface: ProviderLoginSupport
      Starts the OAuth login process. Returns a URL that the app should redirect to.
      Specified by:
      start in interface ProviderLoginSupport
      Parameters:
      tenant - the current tenant the authenticated user belongs too
      providerId - the social service provider ID: facebook, twitter, linkedin
      request - the current request
      additionalUrlParams - additional parameters that should be added to the redirect URL
      Returns:
      the provider specific URL the current app should redirect too.
      Throws:
      AuthenticationException
    • start

      public String start(String tenant, String providerId, javax.servlet.http.HttpServletRequest request, org.springframework.util.MultiValueMap<String,String> additionalUrlParams, org.springframework.social.connect.web.ConnectSupport connectSupport) throws AuthenticationException
      Description copied from interface: ProviderLoginSupport
      Starts the OAuth login process. Returns a URL that the app should redirect to.
      Specified by:
      start in interface ProviderLoginSupport
      Parameters:
      tenant - the current tenant the authenticated user belongs too
      providerId - the social service provider ID: facebook, twitter, linkedin
      request - the current request
      additionalUrlParams - additional parameters that should be added to the redirect URL
      connectSupport - helper class instance for establishing the connections with the providers
      Returns:
      the provider specific URL the current app should redirect too.
      Throws:
      AuthenticationException
    • complete

      public Authentication complete(String tenant, String providerId, javax.servlet.http.HttpServletRequest request) throws AuthenticationException
      Description copied from interface: ProviderLoginSupport
      Completes the OAuth authentication, returning the resulting Authentication object, or null if it couldn't be completed.
      Specified by:
      complete in interface ProviderLoginSupport
      Parameters:
      tenant - the current tenant the authenticated user belongs too
      providerId - the social service provider ID: facebook, twitter, linkedin
      request - the current request
      Returns:
      the authentication
      Throws:
      AuthenticationException
    • complete

      public Authentication complete(String tenant, String providerId, javax.servlet.http.HttpServletRequest request, Set<String> newUserRoles, Map<String,Object> newUserAttributes) throws AuthenticationException
      Description copied from interface: ProviderLoginSupport
      Completes the OAuth authentication, returning the resulting Authentication object, or null if it couldn't be completed.
      Specified by:
      complete in interface ProviderLoginSupport
      Parameters:
      tenant - the current tenant the authenticated user belongs too
      providerId - the social service provider ID: facebook, twitter, linkedin
      request - the current request
      newUserRoles - roles to add to a new user
      newUserAttributes - attributes to add to a new user
      Returns:
      the authentication
      Throws:
      AuthenticationException
    • complete

      public Authentication complete(String tenant, String providerId, javax.servlet.http.HttpServletRequest request, Set<String> newUserRoles, Map<String,Object> newUserAttributes, org.springframework.social.connect.web.ConnectSupport connectSupport) throws AuthenticationException
      Description copied from interface: ProviderLoginSupport
      Completes the OAuth authentication, returning the resulting Authentication object, or null if it couldn't be completed.
      Specified by:
      complete in interface ProviderLoginSupport
      Parameters:
      tenant - the current tenant the authenticated user belongs too
      providerId - the social service provider ID: facebook, twitter, linkedin
      request - the current request
      newUserRoles - roles to add to a new user
      newUserAttributes - attributes to add to a new user
      connectSupport - helper class instance for establishing the connections with the providers
      Returns:
      the authentication
      Throws:
      AuthenticationException
    • completeConnection

      protected org.springframework.social.connect.Connection<?> completeConnection(org.springframework.social.connect.web.ConnectSupport connectSupport, String providerId, javax.servlet.http.HttpServletRequest request) throws OAuth2Exception
      Throws:
      OAuth2Exception
    • getConnectionFactory

      protected org.springframework.social.connect.ConnectionFactory<?> getConnectionFactory(String providerId)
    • getProfile

      protected Profile getProfile(String tenant, Profile userData)
    • createProfile

      protected Profile createProfile(String tenant, org.springframework.social.connect.Connection<?> connection, Profile userData)
    • updateProfileConnectionData

      protected Profile updateProfileConnectionData(String tenant, org.springframework.social.connect.Connection<?> connection, Profile profile)