Spring Security - @Secured没有保护方法

时间:2011-04-12 09:58:40

标签: spring-security

尝试使用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方法上识别注释。任何帮助将不胜感激(我是春季和春季安全的新手)

0 个答案:

没有答案