diff --git a/core/src/main/java/org/springframework/security/intercept/method/aopalliance/MethodDefinitionSourceAdvisor.java b/core/src/main/java/org/springframework/security/intercept/method/aopalliance/MethodDefinitionSourceAdvisor.java index 440e146b5c..2bd503a17a 100644 --- a/core/src/main/java/org/springframework/security/intercept/method/aopalliance/MethodDefinitionSourceAdvisor.java +++ b/core/src/main/java/org/springframework/security/intercept/method/aopalliance/MethodDefinitionSourceAdvisor.java @@ -33,7 +33,7 @@ import org.springframework.util.Assert; * Advisor driven by a {@link MethodDefinitionSource}, used to exclude a {@link MethodSecurityInterceptor} from * public (ie non-secure) methods. *
- * Because the AOP framework caches advice calculations, this is normally faster than just letting the
+ * Because the AOP framework caches advice calculations, this is normally faster than just letting the
* MethodSecurityInterceptor run and find out itself that it has no work to do.
*
* This class also allows the use of Spring's @@ -63,64 +63,63 @@ public class MethodDefinitionSourceAdvisor extends AbstractPointcutAdvisor imple * @deprecated use the decoupled approach instead */ public MethodDefinitionSourceAdvisor(MethodSecurityInterceptor advice) { - Assert.notNull(advice.getObjectDefinitionSource(), "Cannot construct a MethodDefinitionSourceAdvisor using a " + - "MethodSecurityInterceptor that has no ObjectDefinitionSource configured"); + Assert.notNull(advice.getObjectDefinitionSource(), "Cannot construct a MethodDefinitionSourceAdvisor using a " + + "MethodSecurityInterceptor that has no ObjectDefinitionSource configured"); - this.interceptor = advice; + this.interceptor = advice; this.attributeSource = advice.getObjectDefinitionSource(); } - + /** * Alternative constructor for situations where we want the advisor decoupled from the advice. Instead the advice - * bean name should be set. This prevents eager instantiation of the interceptor + * bean name should be set. This prevents eager instantiation of the interceptor * (and hence the AuthenticationManager). See SEC-773, for example. *
* This is essentially the approach taken by subclasses of {@link AbstractBeanFactoryPointcutAdvisor}, which this
- * class should extend in future. The original hierarchy and constructor have been retained for backwards
- * compatibility.
- *
+ * class should extend in future. The original hierarchy and constructor have been retained for backwards
+ * compatibility.
+ *
* @param adviceBeanName name of the MethodSecurityInterceptor bean
* @param attributeSource the attribute source (should be the same as the one used on the interceptor)
*/
public MethodDefinitionSourceAdvisor(String adviceBeanName, MethodDefinitionSource attributeSource) {
- Assert.notNull(adviceBeanName, "The adviceBeanName cannot be null");
- Assert.notNull(attributeSource, "The attributeSource cannot be null");
-
- this.adviceBeanName = adviceBeanName;
- this.attributeSource = attributeSource;
+ Assert.notNull(adviceBeanName, "The adviceBeanName cannot be null");
+ Assert.notNull(attributeSource, "The attributeSource cannot be null");
+
+ this.adviceBeanName = adviceBeanName;
+ this.attributeSource = attributeSource;
}
//~ Methods ========================================================================================================
- public Pointcut getPointcut() {
- return pointcut;
- }
-
- public Advice getAdvice() {
- synchronized (this.adviceMonitor) {
- if (interceptor == null) {
- Assert.notNull(adviceBeanName, "'adviceBeanName' must be set for use with bean factory lookup.");
- Assert.state(beanFactory != null, "BeanFactory must be set to resolve 'adviceBeanName'");
- interceptor = (MethodSecurityInterceptor)
- beanFactory.getBean(this.adviceBeanName, MethodSecurityInterceptor.class);
-// attributeSource = interceptor.getObjectDefinitionSource();
- }
- return interceptor;
- }
- }
-
- public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
- this.beanFactory = beanFactory;
- }
+ public Pointcut getPointcut() {
+ return pointcut;
+ }
+
+ public Advice getAdvice() {
+ synchronized (this.adviceMonitor) {
+ if (interceptor == null) {
+ Assert.notNull(adviceBeanName, "'adviceBeanName' must be set for use with bean factory lookup.");
+ Assert.state(beanFactory != null, "BeanFactory must be set to resolve 'adviceBeanName'");
+ interceptor = (MethodSecurityInterceptor)
+ beanFactory.getBean(this.adviceBeanName, MethodSecurityInterceptor.class);
+ }
+ return interceptor;
+ }
+ }
+
+ public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
+ this.beanFactory = beanFactory;
+ }
//~ Inner Classes ==================================================================================================
-
+
class MethodDefinitionSourcePointcut extends StaticMethodMatcherPointcut {
public boolean matches(Method m, Class targetClass) {
return attributeSource.getAttributes(m, targetClass) != null;
}
}
-
+
/**
* Represents a MethodInvocation.
*
@@ -153,7 +152,7 @@ public class MethodDefinitionSourceAdvisor extends AbstractPointcutAdvisor imple } public Object getThis() { - return this.targetClass; + return this.targetClass; } public Object proceed() throws Throwable {