【发布时间】:2016-09-13 18:57:41
【问题描述】:
我们的 Spring Boot 1.3.3 应用程序使用 Spring Security。我们需要记录 HTTP 请求,包括请求的 URL、HTTP 动词、处理时间、用户主体。
这是使用自定义 servlet 过滤器完成的。
自定义过滤器的优先级必须比 Spring Security 过滤器链更高(即更小的顺序),否则它不会被 Spring Security 拒绝的请求执行。
但是在自定义过滤器中,HttpServletRequest:getUserPrincipal 总是为空。一旦他的安全链完成,Spring Security 似乎会删除安全信息。
在使用 Spring Security 时,是否有一种标准方式(意味着没有线程本地魔法)始终从自定义过滤器中获取用户主体?
感谢您的宝贵时间。
【问题讨论】:
标签: spring servlets spring-security spring-boot servlet-filters