Class RememberMeLoginAutoConfiguration
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected StringThis key is used inRememberMeAuthenticationFilterandRememberMeAuthenticationProviderfor issuing/validatingRememberMeAuthenticationToken.rememberMeAuthenticationFilter(org.springframework.security.authentication.AuthenticationManager authenticationManager, org.springframework.security.web.authentication.RememberMeServices rememberMeServices, org.springframework.security.web.authentication.AuthenticationSuccessHandler authenticationSuccessHandler, org.springframework.security.web.authentication.session.SessionAuthenticationStrategy sessionAuthenticationStrategy, List<UncaughtRememberMeAuthenticationExceptionHandler> uncaughtRememberMeExceptionHandlers, StatelessUtil statelessUtil, RememberMeLoginProperties rememberMeLoginProperties) org.springframework.boot.web.servlet.FilterRegistrationBean<org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter>rememberMeAuthenticationFilterRegistration(org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter filter) Disable automatic Filter registration forRememberMeAuthenticationFilter.org.springframework.security.authentication.RememberMeAuthenticationProviderrememberMeAvailableHeaderFilter(org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings authorizationServerSettings, RememberMeCookieUtility rememberMeCookieUtility, AuthorizedClientService<AuthorizedClient> authorizedClientService, AuthorizationServerService<AuthorizationServer> authorizationServerService, RememberMeLoginProperties rememberMeLoginProperties) org.springframework.boot.web.servlet.FilterRegistrationBean<RememberMeAvailableHeaderFilter>Configure Filter registration forRememberMeAvailableHeaderFilter.rememberMeCookieTheftExceptionHandler(org.springframework.security.web.RedirectStrategy oAuth2ClientIdForwardRedirectStrategy) rememberMeCookieUtility(RememberMeLoginProperties rememberMeLoginProperties) rememberMeLogoutHandlerDelegate(RememberMeCookieUtility rememberMeCookieUtility, RememberMeLoginProperties rememberMeLoginProperties, BroadleafPersistentTokenRememberMeServices persistentTokenRememberMeServices, RememberMeTokenEntityRepository<?> rememberMeTokenEntityRepository) rememberMePersistentTokenRepository(RememberMeTokenEntityRepository<JpaPersistentRememberMeToken> rememberMeTokenEntityRepository, com.broadleafcommerce.common.extension.TypeFactory typeFactory) rememberMeUserDetailsServiceProvider(OAuth2UserDetailsService oAuth2UserDetailsService, ContextHelperService contextHelperService)
-
Constructor Details
-
RememberMeLoginAutoConfiguration
public RememberMeLoginAutoConfiguration()
-
-
Method Details
-
rememberMeAuthenticationFilter
@Bean @ConditionalOnMissingBean(org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.class) public BroadleafRememberMeAuthenticationFilter rememberMeAuthenticationFilter(@Qualifier("authorizationServerWebSecurityAuthenticationManager") org.springframework.security.authentication.AuthenticationManager authenticationManager, org.springframework.security.web.authentication.RememberMeServices rememberMeServices, @Qualifier("defaultAuthenticationSuccessHandler") org.springframework.security.web.authentication.AuthenticationSuccessHandler authenticationSuccessHandler, org.springframework.security.web.authentication.session.SessionAuthenticationStrategy sessionAuthenticationStrategy, @Autowired(required=false) List<UncaughtRememberMeAuthenticationExceptionHandler> uncaughtRememberMeExceptionHandlers, StatelessUtil statelessUtil, RememberMeLoginProperties rememberMeLoginProperties) -
rememberMeAuthenticationFilterRegistration
@Bean @ConditionalOnMissingBean(name="rememberMeAuthenticationFilterRegistration") public org.springframework.boot.web.servlet.FilterRegistrationBean<org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter> rememberMeAuthenticationFilterRegistration(org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter filter) Disable automatic Filter registration forRememberMeAuthenticationFilter. It is manually added to security filter chain inRememberMeLoginAuthenticationConfigurer.See documentation file "register-security-filters.adoc" for information about how to properly register security filters.
-
rememberMeAuthenticationProvider
@Bean @ConditionalOnMissingBean(org.springframework.security.authentication.RememberMeAuthenticationProvider.class) public org.springframework.security.authentication.RememberMeAuthenticationProvider rememberMeAuthenticationProvider() -
rememberMeCookieTheftExceptionHandler
@Bean @ConditionalOnMissingBean(name="rememberMeCookieTheftExceptionHandler") public RememberMeCookieTheftExceptionHandler rememberMeCookieTheftExceptionHandler(@Qualifier("oAuth2ClientIdForwardRedirectStrategy") org.springframework.security.web.RedirectStrategy oAuth2ClientIdForwardRedirectStrategy) -
getRememberMeServicesKey
This key is used in
RememberMeAuthenticationFilterandRememberMeAuthenticationProviderfor issuing/validatingRememberMeAuthenticationToken. TheRememberMeAuthenticationFilterdelegates toRememberMeServices.autoLogin(HttpServletRequest, HttpServletResponse)to validate the overall request and then (if valid) generate theRememberMeAuthenticationTokenwith this key value. Then, theRememberMeAuthenticationProviderwill validate that the key value in theRememberMeAuthenticationTokenis the same before returning success.The 'persistent token approach' components like
PersistentTokenBasedRememberMeServices/BroadleafPersistentTokenRememberMeServicesdo not make any meaningful use of the key. It's not part of the persisted token, nor is it taken as input anywhere. It is only relevant for the 'simple hash based token approach' (TokenBasedRememberMeServices), which we are not using. Thus, we can safely generate the value to something random on each startup, similar to whatgetKey()inRememberMeConfigurerdoes already by default.- Returns:
- the key to share between
RememberMeAuthenticationProviderandPersistentTokenBasedRememberMeServices
-
rememberMeUserDetailsServiceProvider
@Bean @ConditionalOnMissingBean public RememberMeUserDetailsServiceProvider rememberMeUserDetailsServiceProvider(OAuth2UserDetailsService oAuth2UserDetailsService, ContextHelperService contextHelperService) -
rememberMePersistentTokenRepository
@Bean @ConditionalOnMissingBean(org.springframework.security.web.authentication.rememberme.PersistentTokenRepository.class) public BroadleafPersistentTokenRepository rememberMePersistentTokenRepository(RememberMeTokenEntityRepository<JpaPersistentRememberMeToken> rememberMeTokenEntityRepository, com.broadleafcommerce.common.extension.TypeFactory typeFactory) -
rememberMeLogoutHandlerDelegate
@Bean @ConditionalOnMissingBean public RememberMeLogoutHandlerDelegate rememberMeLogoutHandlerDelegate(RememberMeCookieUtility rememberMeCookieUtility, RememberMeLoginProperties rememberMeLoginProperties, BroadleafPersistentTokenRememberMeServices persistentTokenRememberMeServices, RememberMeTokenEntityRepository<?> rememberMeTokenEntityRepository) -
rememberMeLoginAuthenticationStrategyDelegate
@Bean @ConditionalOnMissingBean public RememberMeLoginAuthenticationStrategyDelegate rememberMeLoginAuthenticationStrategyDelegate() -
rememberMeCookieUtility
@Bean @ConditionalOnMissingBean public RememberMeCookieUtility rememberMeCookieUtility(RememberMeLoginProperties rememberMeLoginProperties) -
rememberMeAvailableHeaderFilter
@Bean @ConditionalOnMissingBean public RememberMeAvailableHeaderFilter rememberMeAvailableHeaderFilter(org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings authorizationServerSettings, RememberMeCookieUtility rememberMeCookieUtility, AuthorizedClientService<AuthorizedClient> authorizedClientService, AuthorizationServerService<AuthorizationServer> authorizationServerService, RememberMeLoginProperties rememberMeLoginProperties) -
rememberMeAvailableHeaderFilterRegistration
@Bean @ConditionalOnMissingBean(name="rememberMeAvailableHeaderFilterRegistration") public org.springframework.boot.web.servlet.FilterRegistrationBean<RememberMeAvailableHeaderFilter> rememberMeAvailableHeaderFilterRegistration(RememberMeAvailableHeaderFilter filter) Configure Filter registration for
RememberMeAvailableHeaderFilter. This is not a 'security' filter, and actually applies to paths covered by different security filter chains. Thus, instead of registering it individually with each of those security filter chains, we register it globally here.By default, because it applies to
AuthorizationServerSettings.getTokenEndpoint(), it needs to engage before theOAuth2TokenEndpointFilter(which will skip the remainder of the filter chain). Thus, it needs to be set at a higher priority than the 'authorizationServerSecurityFilterChain' inSpringAuthorizationServerComponentsConfiguration.
-