它应该开箱即用,至少在 Spring Security 3.1HttpServletRequest中(安全链中的每个都应该是 的实例SecurityContextHolderAwareRequestWrapper)。
servlet-api-provision<http>元素的属性添加到堆栈:
提供 HttpServletRequest 安全方法的版本,例如 isUserInRole() 和 getPrincipal(),它们是通过将 SecurityContextHolderAwareRequestFilter bean 添加到堆栈来实现的。默认为真。
过滤器很简单,SecurityContextHolderAwareRequestFilter只包含:HttpServletRequestSecurityContextHolderAwareRequestWrapper
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
chain.doFilter(new SecurityContextHolderAwareRequestWrapper(
(HttpServletRequest) req, rolePrefix), res);
}
(注意错误 #SEC-1943 - 过滤器分配给别名的名称错误SERVLET_API_SUPPORT_FILTER。)