Class PreAuthenticatedAuthenticationProvider

java.lang.Object
org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationProvider
All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean, org.springframework.core.Ordered, AuthenticationProvider

public class PreAuthenticatedAuthenticationProvider extends Object implements AuthenticationProvider, org.springframework.beans.factory.InitializingBean, org.springframework.core.Ordered

Processes a pre-authenticated authentication request. The request will typically originate from a AbstractPreAuthenticatedProcessingFilter subclass.

This authentication provider will not perform any checks on authentication requests, as they should already be pre-authenticated. However, the AuthenticationUserDetailsService implementation may still throw a UsernameNotFoundException, for example.

Since:
2.0
  • Constructor Details

    • PreAuthenticatedAuthenticationProvider

      public PreAuthenticatedAuthenticationProvider()
  • Method Details

    • afterPropertiesSet

      public void afterPropertiesSet()
      Check whether all required properties have been set.
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
    • authenticate

      public Authentication authenticate(Authentication authentication) throws AuthenticationException
      Authenticate the given PreAuthenticatedAuthenticationToken.

      If the principal contained in the authentication object is null, the request will be ignored to allow other providers to authenticate it.

      Specified by:
      authenticate in interface AuthenticationProvider
      Parameters:
      authentication - the authentication request object.
      Returns:
      a fully authenticated object including credentials. May return null if the AuthenticationProvider is unable to support authentication of the passed Authentication object. In such a case, the next AuthenticationProvider that supports the presented Authentication class will be tried.
      Throws:
      AuthenticationException - if authentication fails.
    • supports

      public final boolean supports(Class<?> authentication)
      Indicate that this provider only supports PreAuthenticatedAuthenticationToken (sub)classes.
      Specified by:
      supports in interface AuthenticationProvider
      Returns:
      true if the implementation can more closely evaluate the Authentication class presented
    • setPreAuthenticatedUserDetailsService

      public void setPreAuthenticatedUserDetailsService(AuthenticationUserDetailsService<PreAuthenticatedAuthenticationToken> uds)
      Set the AuthenticatedUserDetailsService to be used to load the UserDetails for the authenticated user.
      Parameters:
      uds -
    • setThrowExceptionWhenTokenRejected

      public void setThrowExceptionWhenTokenRejected(boolean throwExceptionWhenTokenRejected)
      If true, causes the provider to throw a BadCredentialsException if the presented authentication request is invalid (contains a null principal or credentials). Otherwise it will just return null. Defaults to false.
    • setUserDetailsChecker

      public void setUserDetailsChecker(UserDetailsChecker userDetailsChecker)
      Sets the strategy which will be used to validate the loaded UserDetails object for the user. Defaults to an AccountStatusUserDetailsChecker.
      Parameters:
      userDetailsChecker -
    • getOrder

      public int getOrder()
      Specified by:
      getOrder in interface org.springframework.core.Ordered
    • setOrder

      public void setOrder(int i)