SEC-1216: Replacement of custom-after-invocation-provider with after-invocation-provider element. Some changes to help prevent proxying of aop infrastructure classes (use of AopInfrastructureBean marker interface)
@ -66,9 +70,9 @@ public class GlobalMethodSecurityBeanDefinitionParser implements BeanDefinitionP
@@ -66,9 +70,9 @@ public class GlobalMethodSecurityBeanDefinitionParser implements BeanDefinitionP
@ -78,6 +82,7 @@ public class GlobalMethodSecurityBeanDefinitionParser implements BeanDefinitionP
@@ -78,6 +82,7 @@ public class GlobalMethodSecurityBeanDefinitionParser implements BeanDefinitionP
@ -93,6 +98,7 @@ public class GlobalMethodSecurityBeanDefinitionParser implements BeanDefinitionP
@@ -93,6 +98,7 @@ public class GlobalMethodSecurityBeanDefinitionParser implements BeanDefinitionP
@ -148,7 +154,7 @@ public class GlobalMethodSecurityBeanDefinitionParser implements BeanDefinitionP
@@ -148,7 +154,7 @@ public class GlobalMethodSecurityBeanDefinitionParser implements BeanDefinitionP
@ -171,7 +177,14 @@ public class GlobalMethodSecurityBeanDefinitionParser implements BeanDefinitionP
@@ -171,7 +177,14 @@ public class GlobalMethodSecurityBeanDefinitionParser implements BeanDefinitionP
@ -182,9 +195,10 @@ public class GlobalMethodSecurityBeanDefinitionParser implements BeanDefinitionP
@@ -182,9 +195,10 @@ public class GlobalMethodSecurityBeanDefinitionParser implements BeanDefinitionP
@ -217,14 +231,15 @@ public class GlobalMethodSecurityBeanDefinitionParser implements BeanDefinitionP
@@ -217,14 +231,15 @@ public class GlobalMethodSecurityBeanDefinitionParser implements BeanDefinitionP
@ -266,31 +281,43 @@ public class GlobalMethodSecurityBeanDefinitionParser implements BeanDefinitionP
@@ -266,31 +281,43 @@ public class GlobalMethodSecurityBeanDefinitionParser implements BeanDefinitionP
## Provides method security for all beans registered in the Spring application context. Specifically, beans will be scanned for matches with the ordered list of "protect-pointcut" sub-elements, Spring Security annotations and/or. Where there is a match, the beans will automatically be proxied and security authorization applied to the methods accordingly. If you use and enable all four sources of method security metadata (ie "protect-pointcut" declarations, expression annotations, @Secured and also JSR250 security annotations), the metadata sources will be queried in that order. In practical terms, this enables you to use XML to override method security metadata expressed in annotations. If using annotations, the order of precedence is EL-based (@PreAuthorize etc.), @Secured and finally JSR-250.
element global-method-security {global-method-security.attlist, (pre-post-annotation-handling | expression-handler)?, protect-pointcut*}
element global-method-security {global-method-security.attlist, (pre-post-annotation-handling | expression-handler)?, protect-pointcut*, after-invocation-provider*}
global-method-security.attlist &=
## Specifies whether the use of Spring Security's pre and post invocation annotations (@PreFilter, @PreAuthorize, @PostFilter, @PostAuthorize) should be enabled for this application context. Defaults to "disabled".
## Optional RunAsmanager implementation which will be used by the configured MethodSecurityInterceptor
attribute run-as-manager-ref {xsd:token}?
after-invocation-provider =
## Allows addition of extra AfterInvocationProvider beans which should be called by the MethodSecurityInterceptor created by global-method-security.
element after-invocation-provider {ref}
pre-post-annotation-handling =
## Allows the default expression-based mechanism for handling Spring Security's pre and post invocation annotations (@PreFilter, @PreAuthorize, @PostFilter, @PostAuthorize) to be replace entirely. Only applies if these annotations are enabled.
@ -117,9 +117,11 @@ public class LdapUserServiceBeanDefinitionParserTests {
@@ -117,9 +117,11 @@ public class LdapUserServiceBeanDefinitionParserTests {
@ -24,23 +17,10 @@ public class CustomAfterInvocationProviderBeanDefinitionDecoratorTests {
@@ -24,23 +17,10 @@ public class CustomAfterInvocationProviderBeanDefinitionDecoratorTests {
@ -184,6 +184,7 @@ public class GlobalMethodSecurityBeanDefinitionParserTests {
@@ -184,6 +184,7 @@ public class GlobalMethodSecurityBeanDefinitionParserTests {
);
}
// SEC-936
@Test(expected=AccessDeniedException.class)
publicvoidworksWithoutTargetOrClass(){
setContext(
@ -210,7 +211,9 @@ public class GlobalMethodSecurityBeanDefinitionParserTests {
@@ -210,7 +211,9 @@ public class GlobalMethodSecurityBeanDefinitionParserTests {
@ -269,7 +272,9 @@ public class GlobalMethodSecurityBeanDefinitionParserTests {
@@ -269,7 +272,9 @@ public class GlobalMethodSecurityBeanDefinitionParserTests {