Class AbstractUserDetailsReactiveAuthenticationManager

  • All Implemented Interfaces:
    org.springframework.beans.factory.Aware, org.springframework.context.MessageSourceAware, ReactiveAuthenticationManager
    Direct Known Subclasses:
    UserDetailsRepositoryReactiveAuthenticationManager

    public abstract class AbstractUserDetailsReactiveAuthenticationManager
    extends java.lang.Object
    implements ReactiveAuthenticationManager, org.springframework.context.MessageSourceAware
    A base ReactiveAuthenticationManager that allows subclasses to override and work with UserDetails objects.

    Upon successful validation, a UsernamePasswordAuthenticationToken will be created and returned to the caller. The token will include as its principal either a String representation of the username, or the UserDetails that was returned from the authentication repository.

    Since:
    5.2
    • Field Detail

      • logger

        protected final org.apache.commons.logging.Log logger
      • messages

        protected org.springframework.context.support.MessageSourceAccessor messages
    • Constructor Detail

      • AbstractUserDetailsReactiveAuthenticationManager

        public AbstractUserDetailsReactiveAuthenticationManager()
    • Method Detail

      • setScheduler

        public void setScheduler​(reactor.core.scheduler.Scheduler scheduler)
        Sets the Scheduler used by the UserDetailsRepositoryReactiveAuthenticationManager. The default is Schedulers.newParallel(String) because modern password encoding is a CPU intensive task that is non blocking. This means validation is bounded by the number of CPUs. Some applications may want to customize the Scheduler. For example, if users are stuck using the insecure NoOpPasswordEncoder they might want to leverage Schedulers.immediate().
        Parameters:
        scheduler - the Scheduler to use. Cannot be null.
        Since:
        5.0.6
      • setUserDetailsPasswordService

        public void setUserDetailsPasswordService​(ReactiveUserDetailsPasswordService userDetailsPasswordService)
        Sets the service to use for upgrading passwords on successful authentication.
        Parameters:
        userDetailsPasswordService - the service to use
      • setPostAuthenticationChecks

        public void setPostAuthenticationChecks​(UserDetailsChecker postAuthenticationChecks)
        Sets the strategy which will be used to validate the loaded UserDetails object after authentication occurs.
        Parameters:
        postAuthenticationChecks - The UserDetailsChecker
        Since:
        5.2
      • setMessageSource

        public void setMessageSource​(org.springframework.context.MessageSource messageSource)
        Specified by:
        setMessageSource in interface org.springframework.context.MessageSourceAware
        Since:
        5.5
      • retrieveUser

        protected abstract reactor.core.publisher.Mono<UserDetails> retrieveUser​(java.lang.String username)
        Allows subclasses to retrieve the UserDetails from an implementation-specific location.
        Parameters:
        username - The username to retrieve
        Returns:
        the user information. If authentication fails, a Mono error is returned.