Browse Source

SEC-890: Corrected use of dataSource property name in RememberMeBDP.

Luke Taylor 17 năm trước cách đây
mục cha
commit
af5f193ec1

+ 1 - 1
core/src/main/java/org/springframework/security/config/RememberMeBeanDefinitionParser.java

@@ -84,7 +84,7 @@ public class RememberMeBeanDefinitionParser implements BeanDefinitionParser {
                 tokenRepo = new RuntimeBeanReference(tokenRepository);
             } else {
                 tokenRepo = new RootBeanDefinition(JdbcTokenRepositoryImpl.class);
-                ((BeanDefinition)tokenRepo).getPropertyValues().addPropertyValue(ATT_DATA_SOURCE,
+                ((BeanDefinition)tokenRepo).getPropertyValues().addPropertyValue("dataSource",
                         new RuntimeBeanReference(dataSource));
             }
             services.getPropertyValues().addPropertyValue("tokenRepository", tokenRepo);

+ 15 - 0
core/src/test/java/org/springframework/security/config/HttpSecurityBeanDefinitionParserTests.java

@@ -349,6 +349,21 @@ public class HttpSecurityBeanDefinitionParserTests {
         assertTrue(rememberMeServices instanceof PersistentTokenBasedRememberMeServices);
     }
 
+    @Test
+    public void rememberMeServiceWorksWithDataSourceRef() {
+        setContext(
+                "<http auto-config='true'>" +
+                "    <remember-me data-source-ref='ds'/>" +
+                "</http>" +
+                "<b:bean id='ds' class='org.springframework.security.TestDataSource'> " +
+                "    <b:constructor-arg value='tokendb'/>" +
+                "</b:bean>" + AUTH_PROVIDER_XML);
+        Object rememberMeServices = appContext.getBean(BeanIds.REMEMBER_ME_SERVICES);
+        
+        assertTrue(rememberMeServices instanceof PersistentTokenBasedRememberMeServices);
+    }    
+    
+    
     @Test
     public void rememberMeServiceWorksWithExternalServicesImpl() throws Exception {
         setContext(