Преглед на файлове

add setter for using a custom name for the rememberMeParameter

Michael Cramer преди 10 години
родител
ревизия
c8b79289c9

+ 11 - 0
config/src/main/java/org/springframework/security/config/annotation/web/configurers/RememberMeConfigurer.java

@@ -162,6 +162,17 @@ public final class RememberMeConfigurer<H extends HttpSecurityBuilder<H>> extend
         return this;
     }
 
+    /**
+     * The HTTP parameter used to indicate to remember the user at time of login.
+     *
+     * @param rememberMeParameter the HTTP parameter used to indicate to remember the user
+     * @return  the {@link RememberMeConfigurer} for further customization
+     */
+    public RememberMeConfigurer<H> rememberMeParameter(String rememberMeParameter) {
+        this.rememberMeParameter = rememberMeParameter;
+        return this;
+    }
+
     /**
      * Allows control over the destination a remembered user is sent to when they are successfully authenticated.
      * By default, the filter will just allow the current request to proceed, but if an

+ 18 - 0
config/src/test/groovy/org/springframework/security/config/annotation/web/configurers/NamespaceRememberMeTests.groovy

@@ -252,6 +252,24 @@ public class NamespaceRememberMeTests extends BaseSpringSpec {
             ReflectionTestUtils.getField(findFilter(RememberMeAuthenticationFilter).rememberMeServices, "useSecureCookie") == true
     }
 
+    @Configuration
+    static class RememberMeParameterConfig extends BaseWebConfig {
+        protected void configure(HttpSecurity http) throws Exception {
+            http
+                .formLogin()
+                    .and()
+                .rememberMe()
+                    .rememberMeParameter("rememberMe")
+        }
+    }
+
+    def "http/remember-me@remember-me-parameter"() {
+        when: "use custom rememberMeParameter"
+            loadConfig(RememberMeParameterConfig)
+        then: "custom rememberMeParameter will be used"
+            findFilter(RememberMeAuthenticationFilter).rememberMeServices.parameter == "rememberMe"
+    }
+
     @Configuration
     static class UseSecureCookieConfig extends BaseWebConfig {
         protected void configure(HttpSecurity http) throws Exception {