Spring security 预授权注释不';好像不行

Spring security 预授权注释不';好像不行,spring-security,spring-aop,Spring Security,Spring Aop,我们正试图使用Spring的@preAuthorize标记来实现方法级安全性。一切都可以正常编译和运行,但没有出现限制。这是一种仅限管理员使用的方法,但即使是非管理员也可以访问。以下是我们在上下文中如何配置它: 这里是方法本身: @PreAuthorize((hasRole('ROLE\u ADMIN'))) 公共一些doIt(一些输入){ 做点什么; 还一些; } 但每个人都可以拥有一件东西。我错过了什么?任何帮助都将不胜感激。请查看以下内容: 总而言之: “您需要将声明移动到 web上

我们正试图使用Spring的@preAuthorize标记来实现方法级安全性。一切都可以正常编译和运行,但没有出现限制。这是一种仅限管理员使用的方法,但即使是非管理员也可以访问。以下是我们在上下文中如何配置它:


这里是方法本身:

@PreAuthorize((hasRole('ROLE\u ADMIN')))
公共一些doIt(一些输入){
做点什么;
还一些;
}

但每个人都可以拥有一件东西。我错过了什么?任何帮助都将不胜感激。

请查看以下内容:

总而言之:

“您需要将声明移动到 web上下文或已将要保护的bean移动到主 应用程序上下文。“


事实证明,对于从同一个类中访问的方法,无论是私有的还是公共的,都不能有注释。注释仅适用于外部访问的公共方法


希望这能帮助犯同样错误的人。

我也有同样的问题,这就解决了。谢谢此链接建议保护服务层方法。它们经常被其他私有/公共方法使用。确实如此!我对调用的第一个方法进行了预授权,该方法正确触发,然后当该方法调用同一类中的另一个安全方法时,则没有。花了很长时间处理各种处理程序和求值程序,仅此而已……感谢
只处理公共方法
,令人误解的是,该方法已注册以处理请求,但仅在公共的情况下才受保护。