Ale*_*der 4 spring authorization annotations spring-security spring-annotations
我有spring安全应用程序,希望启用注释安全性(授权前和授权后).我也有小样本应用程序,我已经实现了它.一切正常.但是将配置移动到主应用程序失败了.控制台中没有错误.但注释不起作用.看起来,他们根本就没有被贬低.所有配置和组件版本完全相同.
有
<security:global-method-security secured-annotations="enabled" />
Run Code Online (Sandbox Code Playgroud)
安全上下文和servlet上下文中的记录.但是@Controller方法没有@Service方法在主应用程序中使用注释保护.
我该怎么调试呢?
解决了!
从<global-method-security secured-annotations ="enabled"/>切换到pre/post注释后工作正常.
vvv*_*vvv 11
您可以添加到您的application.yaml:
logging.level.org.springframework.security: DEBUG
Run Code Online (Sandbox Code Playgroud)
或添加到application.properties:
logging.level.org.springframework.security=DEBUG
Run Code Online (Sandbox Code Playgroud)
或添加到您的WebSecurityConfig注释EnableWebSecurity有debug = true:
@Configuration
@EnableWebSecurity(debug = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
// ...
}
Run Code Online (Sandbox Code Playgroud)
将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
你可能需要pre-post-annotations ="enabled",并设置expressionHandler.
确保标记<global-method-security>在应用程序上下文中
| 归档时间: |
|
| 查看次数: |
5606 次 |
| 最近记录: |