如何调试Spring Security授权注释

时间:2015-02-18 07:31:43

标签: spring spring-security annotations authorization spring-annotations

我有spring安全应用程序,希望启用注释安全性(授权前和授权后)。 我也有小样本应用程序,我已经实现了它。一切正常。 但是将配置移动到主应用程序失败了。控制台中没有错误。但注释不起作用。看起来,他们根本就没有被贬低。 所有配置和组件版本都完全相同。

<security:global-method-security secured-annotations="enabled" /> 

安全上下文和servlet上下文中的记录。 但是@Controller方法没有@Service方法在主应用程序中使用注释保护。

我该怎么调试呢?

解决!

从&lt;切换后global-method-security secured-annotations =&#34; enabled&#34; /&GT;至  前/后注释工作正常。

3 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:0)

您可以添加到您的application.yaml

logging.level.org.springframework.security: DEBUG

或添加到application.properties

logging.level.org.springframework.security=DEBUG

或使用WebSecurityConfig添加到您的EnableWebSecurity批注debug = true

@Configuration
@EnableWebSecurity(debug = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
  // ...
}

答案 2 :(得分:0)

如果您只想知道哪个方法失败,只需为此异常过滤器设置日志级别:

logging.level.org.springframework.security.web.access.ExceptionTranslationFilter: DEBUG

它只会显示失败方法的堆栈跟踪,而不是不必要的垃圾邮件;-)