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();