diff --git a/config/src/main/java/org/springframework/security/config/http/AuthenticationConfigBuilder.java b/config/src/main/java/org/springframework/security/config/http/AuthenticationConfigBuilder.java index 627f02fec8..5defb73308 100644 --- a/config/src/main/java/org/springframework/security/config/http/AuthenticationConfigBuilder.java +++ b/config/src/main/java/org/springframework/security/config/http/AuthenticationConfigBuilder.java @@ -125,7 +125,7 @@ final class AuthenticationConfigBuilder { Element rememberMeElt = DomUtils.getChildElementByTagName(httpElt, Elements.REMEMBER_ME); if (rememberMeElt != null) { - String key = rememberMeElt.getAttribute(ATT_KEY); + String key = rememberMeElt.getAttribute(ATT_KEY); if (!StringUtils.hasText(key)) { key = DEF_KEY; @@ -370,9 +370,9 @@ final class AuthenticationConfigBuilder { Object source = pc.extractSource(httpElt); if (anonymousElt != null) { - grantedAuthority = httpElt.getAttribute("granted-authority"); - username = httpElt.getAttribute("username"); - key = httpElt.getAttribute("key"); + grantedAuthority = anonymousElt.getAttribute("granted-authority"); + username = anonymousElt.getAttribute("username"); + key = anonymousElt.getAttribute("key"); source = pc.extractSource(anonymousElt); } diff --git a/config/src/test/java/org/springframework/security/config/http/HttpSecurityBeanDefinitionParserTests.java b/config/src/test/java/org/springframework/security/config/http/HttpSecurityBeanDefinitionParserTests.java index 3b2273944b..9371b7dba6 100644 --- a/config/src/test/java/org/springframework/security/config/http/HttpSecurityBeanDefinitionParserTests.java +++ b/config/src/test/java/org/springframework/security/config/http/HttpSecurityBeanDefinitionParserTests.java @@ -253,6 +253,18 @@ public class HttpSecurityBeanDefinitionParserTests { assertThat(getFilters("/anything").get(5), not(instanceOf(AnonymousAuthenticationFilter.class))); } + @Test + public void anonymousCustomAttributesAreSetCorrectly() throws Exception { + setContext( + "" + + " " + + " " + + "" + AUTH_PROVIDER_XML); + AnonymousAuthenticationFilter filter = (AnonymousAuthenticationFilter) getFilters("/anything").get(5); + assertEquals("customKey", filter.getKey()); + assertEquals("joe", filter.getUserAttribute().getPassword()); + assertEquals("anonymity", filter.getUserAttribute().getAuthorities().get(0).getAuthority()); + } @Test(expected=BeanCreationException.class) public void invalidLoginPageIsDetected() throws Exception { @@ -859,6 +871,7 @@ public class HttpSecurityBeanDefinitionParserTests { setContext( " " + " " + + " " + " " + " " + AUTH_PROVIDER_XML); closeAppContext();