Refactor to use an application context, thus enabling event publishing and use of DefaultAdvisorAutoProxyCreator.
This commit is contained in:
parent
537a58d754
commit
89f6fcf5c9
|
@ -40,13 +40,12 @@ import net.sf.acegisecurity.intercept.method.MockMethodDefinitionSource;
|
|||
import net.sf.acegisecurity.providers.UsernamePasswordAuthenticationToken;
|
||||
import net.sf.acegisecurity.runas.RunAsManagerImpl;
|
||||
|
||||
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
|
||||
import org.springframework.beans.factory.support.PropertiesBeanDefinitionReader;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.Properties;
|
||||
|
||||
|
||||
/**
|
||||
|
@ -399,39 +398,10 @@ public class MethodSecurityInterceptorTests extends TestCase {
|
|||
}
|
||||
|
||||
private ITargetObject makeInterceptedTarget() {
|
||||
String PREFIX = "beans.";
|
||||
DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
|
||||
Properties p = new Properties();
|
||||
p.setProperty(PREFIX + "authentication.class",
|
||||
"net.sf.acegisecurity.MockAuthenticationManager");
|
||||
p.setProperty(PREFIX + "accessDecision.class",
|
||||
"net.sf.acegisecurity.MockAccessDecisionManager");
|
||||
p.setProperty(PREFIX + "runAs.class",
|
||||
"net.sf.acegisecurity.MockRunAsManager");
|
||||
ApplicationContext context = new ClassPathXmlApplicationContext(
|
||||
"net/sf/acegisecurity/intercept/method/aopalliance/applicationContext.xml");
|
||||
|
||||
p.setProperty(PREFIX + "securityInterceptor.class",
|
||||
"net.sf.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor");
|
||||
p.setProperty(PREFIX + "securityInterceptor.authenticationManager(ref)",
|
||||
"authentication");
|
||||
p.setProperty(PREFIX + "securityInterceptor.accessDecisionManager(ref)",
|
||||
"accessDecision");
|
||||
p.setProperty(PREFIX + "securityInterceptor.runAsManager(ref)", "runAs");
|
||||
p.setProperty(PREFIX + "securityInterceptor.objectDefinitionSource",
|
||||
"net.sf.acegisecurity.ITargetObject.makeLower*=MOCK_LOWER\r\nnet.sf.acegisecurity.ITargetObject.makeUpper*=MOCK_UPPER,RUN_AS");
|
||||
|
||||
p.setProperty(PREFIX + "targetObject.class",
|
||||
"net.sf.acegisecurity.TargetObject");
|
||||
p.setProperty(PREFIX + "target.class",
|
||||
"org.springframework.aop.framework.ProxyFactoryBean");
|
||||
p.setProperty(PREFIX + "target.proxyInterfaces",
|
||||
"net.sf.acegisecurity.ITargetObject");
|
||||
p.setProperty(PREFIX + "target.interceptorNames",
|
||||
"securityInterceptor,targetObject");
|
||||
|
||||
(new PropertiesBeanDefinitionReader(lbf)).registerBeanDefinitions(p,
|
||||
PREFIX);
|
||||
|
||||
return (ITargetObject) lbf.getBean("target");
|
||||
return (ITargetObject) context.getBean("target");
|
||||
}
|
||||
|
||||
//~ Inner Classes ==========================================================
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||
<!--
|
||||
* Copyright 2004 Acegi Technology Pty Limited
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*
|
||||
* $Id$
|
||||
-->
|
||||
|
||||
<beans>
|
||||
|
||||
<bean id="authentication" class="net.sf.acegisecurity.MockAuthenticationManager"/>
|
||||
<bean id="accessDecision" class="net.sf.acegisecurity.MockAccessDecisionManager"/>
|
||||
<bean id="runAs" class="net.sf.acegisecurity.MockRunAsManager"/>
|
||||
|
||||
<bean id="loggerListener" class="net.sf.acegisecurity.intercept.event.LoggerListener"/>
|
||||
|
||||
<bean id="securityInterceptor" class="net.sf.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor">
|
||||
<property name="authenticationManager"><ref local="authentication"/></property>
|
||||
<property name="accessDecisionManager"><ref local="accessDecision"/></property>
|
||||
<property name="runAsManager"><ref local="runAs"/></property>
|
||||
<property name="objectDefinitionSource">
|
||||
<value>
|
||||
net.sf.acegisecurity.ITargetObject.makeLower*=MOCK_LOWER
|
||||
net.sf.acegisecurity.ITargetObject.makeUpper*=MOCK_UPPER,RUN_AS
|
||||
</value>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="target" class="net.sf.acegisecurity.TargetObject"/>
|
||||
|
||||
<!-- Autowire is fine as advisor requires MethodSecurityInterceptor -->
|
||||
<bean id="methodSecurityAdvisor"
|
||||
class="net.sf.acegisecurity.intercept.method.aopalliance.MethodDefinitionSourceAdvisor"
|
||||
autowire="constructor" >
|
||||
</bean>
|
||||
|
||||
<bean id="autoproxy"
|
||||
class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator">
|
||||
</bean>
|
||||
|
||||
</beans>
|
Loading…
Reference in New Issue