diff --git a/core/src/main/java/org/springframework/security/config/HttpSecurityBeanDefinitionParser.java b/core/src/main/java/org/springframework/security/config/HttpSecurityBeanDefinitionParser.java index 36e9ef6f1b..0d77f41895 100644 --- a/core/src/main/java/org/springframework/security/config/HttpSecurityBeanDefinitionParser.java +++ b/core/src/main/java/org/springframework/security/config/HttpSecurityBeanDefinitionParser.java @@ -169,8 +169,8 @@ public class HttpSecurityBeanDefinitionParser implements BeanDefinitionParser { filterSecurityInterceptorBuilder.addPropertyValue("authenticationManager", ConfigUtils.registerProviderManagerIfNecessary(parserContext)); - if ("true".equals(element.getAttribute(ATT_ONCE_PER_REQUEST))) { - filterSecurityInterceptorBuilder.addPropertyValue("observeOncePerRequest", Boolean.TRUE); + if ("false".equals(element.getAttribute(ATT_ONCE_PER_REQUEST))) { + filterSecurityInterceptorBuilder.addPropertyValue("observeOncePerRequest", Boolean.FALSE); } // SEC-501 - should paths stored in request maps be converted to lower case diff --git a/core/src/main/resources/org/springframework/security/config/spring-security-2.0.rnc b/core/src/main/resources/org/springframework/security/config/spring-security-2.0.rnc index d8a8f5ec4c..6f4a2467d5 100644 --- a/core/src/main/resources/org/springframework/security/config/spring-security-2.0.rnc +++ b/core/src/main/resources/org/springframework/security/config/spring-security-2.0.rnc @@ -214,7 +214,7 @@ http.attlist &= ## Allows a customized AuthenticationEntryPoint to be used. attribute entry-point-ref {xsd:string}? http.attlist &= - ## Corresponds to the observeOncePerRequest property of FilterSecurityInterceptor. Defaults to "false" + ## Corresponds to the observeOncePerRequest property of FilterSecurityInterceptor. Defaults to "true" attribute once-per-request {boolean}? http.attlist &= ## Allows the access denied page to be set (the user will be redirected here if an AccessDeniedException is raised). diff --git a/core/src/main/resources/org/springframework/security/config/spring-security-2.0.xsd b/core/src/main/resources/org/springframework/security/config/spring-security-2.0.xsd index 09cfb1b52f..d0a35c376a 100644 --- a/core/src/main/resources/org/springframework/security/config/spring-security-2.0.xsd +++ b/core/src/main/resources/org/springframework/security/config/spring-security-2.0.xsd @@ -700,7 +700,7 @@ Corresponds to the observeOncePerRequest property of - FilterSecurityInterceptor. Defaults to "false" + FilterSecurityInterceptor. Defaults to "true" diff --git a/core/src/test/java/org/springframework/security/config/HttpSecurityBeanDefinitionParserTests.java b/core/src/test/java/org/springframework/security/config/HttpSecurityBeanDefinitionParserTests.java index 0b813c3c80..aa8092e6b6 100644 --- a/core/src/test/java/org/springframework/security/config/HttpSecurityBeanDefinitionParserTests.java +++ b/core/src/test/java/org/springframework/security/config/HttpSecurityBeanDefinitionParserTests.java @@ -97,7 +97,10 @@ public class HttpSecurityBeanDefinitionParserTests { assertTrue(filters.next() instanceof RememberMeProcessingFilter); assertTrue(filters.next() instanceof AnonymousProcessingFilter); assertTrue(filters.next() instanceof ExceptionTranslationFilter); - assertTrue(filters.next() instanceof FilterSecurityInterceptor); + Object fsiObj = filters.next(); + assertTrue(fsiObj instanceof FilterSecurityInterceptor); + FilterSecurityInterceptor fsi = (FilterSecurityInterceptor) fsiObj; + assertTrue(fsi.isObserveOncePerRequest()); } @Test @@ -202,12 +205,12 @@ public class HttpSecurityBeanDefinitionParserTests { @Test public void oncePerRequestAttributeIsSupported() throws Exception { - setContext("" + AUTH_PROVIDER_XML); + setContext("" + AUTH_PROVIDER_XML); List filters = getFilters("/someurl"); FilterSecurityInterceptor fsi = (FilterSecurityInterceptor) filters.get(filters.size() - 1); - assertTrue(fsi.isObserveOncePerRequest()); + assertFalse(fsi.isObserveOncePerRequest()); } @Test