我有spring安全应用程序,希望启用注释安全性(授权前和授权后).
我也有小样本应用程序,我已经实现了它.一切正常.
但是将配置移动到主应用程序失败了.控制台中没有错误.但注释不起作用.看起来,他们根本就没有被贬低.
所有配置和组件版本完全相同.
有
<security:global-method-security secured-annotations="enabled" />
安全上下文和servlet上下文中的记录.
但是@Controller方法没有@Service方法在主应用程序中使用注释保护.
我该怎么调试呢?
解决了!
从<切换后global-method-security secured-annotations =“enabled”/>至
前/后注释工作正常.
解决方法:
将org.springframework.security的日志级别设置为debug.在使用注释调用方法时,您可以找到指示正在应用拦截器的日志消息,尤其是查找:
DEBUG MethodSecurityInterceptor
更新:
这意味着您的示例应用程序和主应用程序之间存在一些配置差异
一些指向寻找:
>< global-method-security>标记需要与Spring MVC配置位于相同的上下文中,否则您的控制器将不会进行后期处理.参考:
http://docs.spring.io/spring-security/site/docs/3.2.x/reference/htmlsingle/faq.html#faq-method-security-in-web-context
>您可能需要预注释=“启用”,并设置expressionHandler.
>确保标签< global-method-security>在应用程序上下文中