尝试使用Spring安全性编写基于方法安全性的简单概念证明。但是我编写的简单应用程序似乎不会在方法上获取@Secured注释。
<beans:bean id="hello" class="org.testing.Hello">
<beans:property name="name" value="Bob" />
</beans:bean>
<global-method-security secured-annotations="enabled" access-decision-manager-ref="accessDecisionManager"/>
<authentication-manager alias="_authenticationManager">
<authentication-provider>
<user-service>
<user password="password" name="me" authorities="ROLE_A"/>
<user password="password" name="notMe" authorities="ROLE_B"/>
</user-service>
</authentication-provider>
</authentication-manager>
我的安全方法定义如下(我已经尝试保护实际的方法实现以及一起摆脱接口)
public interface IHello {
@Secured("ROLE_C")
public void greet();
@Secured("ROLE_C")
public void greet();
我正在使用spring security 3.0.4
使用单元测试加载上下文文件(应用程序中只有一个上下文文件)并调用方法:
}
AuthenticationManager authManager = (AuthenticationManager) factory.getBean("_authenticationManager");
UsernamePasswordAuthenticationToken login = new UsernamePasswordAuthenticationToken("me", "password");
SecurityContextHolder.getContext().setAuthentication(authManager.authenticate(login));
Hello hello = (Hello) factory.getBean("hello");
hello.greet();
但它似乎没有在greet方法上识别注释。任何帮助将不胜感激(我是春季和春季安全的新手)