From 7d439cbf19fee296743c0e6ace6e6a45f5eb4ff6 Mon Sep 17 00:00:00 2001 From: Mario Petrovski Date: Tue, 4 Jul 2023 17:04:38 +0200 Subject: [PATCH 1/2] Closes #11450 Added configuration with Java beans where XML was only provided. --- .../servlet/authentication/rememberme.adoc | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/docs/modules/ROOT/pages/servlet/authentication/rememberme.adoc b/docs/modules/ROOT/pages/servlet/authentication/rememberme.adoc index fb2861174f7..5b96c246174 100644 --- a/docs/modules/ROOT/pages/servlet/authentication/rememberme.adoc +++ b/docs/modules/ROOT/pages/servlet/authentication/rememberme.adoc @@ -157,7 +157,39 @@ XML:: The following beans are required in an application context to enable remember-me services: -[source,xml] +[tabs] +====== +Java:: ++ +[source,java,role="primary"] +---- +@Bean +RememberMeAuthenticationFilter rememberMeFilter() { + RememberMeAuthenticationFilter rememberMeFilter = new RememberMeAuthenticationFilter(); + rememberMeFilter.setRememberMeServices(rememberMeServices); + rememberMeFilter.setAuthenticationManager(theAuthenticationManager); + return rememberMeFilter; +} + +@Bean +TokenBasedRememberMeServices rememberMeServices() { + TokenBasedRememberMeServices rememberMeServices = new TokenBasedRememberMeServices(); + rememberMeServices.setUserDetailsService(myUserDetailsService); + rememberMeServices.setKey("springRocks"); + return rememberMeServices; +} + +@Bean +RememberMeAuthenticationProvider rememberMeAuthenticationProvider() { + RememberMeAuthenticationProvider rememberMeAuthenticationProvider = new RememberMeAuthenticationProvider(); + rememberMeAuthenticationProvider.setKey("springRocks"); + return rememberMeAuthenticationProvider; +} +---- + +XML:: ++ +[source,xml,role="secondary"] ---- @@ -176,6 +208,7 @@ The following beans are required in an application context to enable remember-me ---- +====== Remember to add your `RememberMeServices` implementation to your `UsernamePasswordAuthenticationFilter.setRememberMeServices()` property, include the `RememberMeAuthenticationProvider` in your `AuthenticationManager.setProviders()` list, and add `RememberMeAuthenticationFilter` into your `FilterChainProxy` (typically immediately after your `UsernamePasswordAuthenticationFilter`). From 1ed886ccb30b14e162f6d9a5f25315e9318062db Mon Sep 17 00:00:00 2001 From: Mario Petrovski Date: Wed, 5 Jul 2023 13:10:14 +0200 Subject: [PATCH 2/2] Improve the java bean RememberMeAuthenticationFilter to reference the other bean TokenBasedRememberMeServices --- docs/modules/ROOT/pages/servlet/authentication/rememberme.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/modules/ROOT/pages/servlet/authentication/rememberme.adoc b/docs/modules/ROOT/pages/servlet/authentication/rememberme.adoc index 5b96c246174..35e797f6a8c 100644 --- a/docs/modules/ROOT/pages/servlet/authentication/rememberme.adoc +++ b/docs/modules/ROOT/pages/servlet/authentication/rememberme.adoc @@ -166,7 +166,7 @@ Java:: @Bean RememberMeAuthenticationFilter rememberMeFilter() { RememberMeAuthenticationFilter rememberMeFilter = new RememberMeAuthenticationFilter(); - rememberMeFilter.setRememberMeServices(rememberMeServices); + rememberMeFilter.setRememberMeServices(rememberMeServices()); rememberMeFilter.setAuthenticationManager(theAuthenticationManager); return rememberMeFilter; }