Class RememberMeLoginAutoConfiguration
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected String
This key is used inRememberMeAuthenticationFilter
andRememberMeAuthenticationProvider
for 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.RememberMeAuthenticationProvider
rememberMeAvailableHeaderFilter
(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
RememberMeAuthenticationFilter
andRememberMeAuthenticationProvider
for issuing/validatingRememberMeAuthenticationToken
. TheRememberMeAuthenticationFilter
delegates toRememberMeServices.autoLogin(HttpServletRequest, HttpServletResponse)
to validate the overall request and then (if valid) generate theRememberMeAuthenticationToken
with this key value. Then, theRememberMeAuthenticationProvider
will validate that the key value in theRememberMeAuthenticationToken
is the same before returning success.The 'persistent token approach' components like
PersistentTokenBasedRememberMeServices
/BroadleafPersistentTokenRememberMeServices
do 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()
inRememberMeConfigurer
does already by default.- Returns:
- the key to share between
RememberMeAuthenticationProvider
andPersistentTokenBasedRememberMeServices
-
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
.
-