如何调试Spring Security授权注释

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注释EnableWebSecuritydebug = true

@Configuration
@EnableWebSecurity(debug = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
  // ...
}
Run Code Online (Sandbox Code Playgroud)


cha*_*ybr 7

将org.springframework.security的日志级别设置为debug.在使用注释调用方法时,您可以找到指示正在应用拦截器的日志消息,尤其是查找:DEBUG MethodSecurityInterceptor

更新:这意味着您的示例应用程序和主应用程序之间存在一些配置差异一些指向要查找的内容: