问题:spring boot security 中, filters="none" 对应哪个?
自定义AbstractSecurityInterceptor后 静态资源也进入拦截器,登陆页面,permitall 也失效,
还是进入了filter
参考:http://blog.51cto.com/winters1224/2052034
调试源代码发现,采用默认的 FilterSecurityInterceptor 过滤器 时,使用默认的DefaultFilterInvocationSecurityMetadataSource
里面的requestmap加载了对应的antMatchers("xxxx","xxx").permitAll() 里面的url 作为key,并且value 里面设置为permitAll
,后面默认的决策器就是因为这个permitAll,所以容许访问。
(FilterSecurityInterceptor 里的
AbstractSecurityInterceptor 里的beforeInvocation 会调用 DefaultFilterInvocationSecurityMetadataSource 的getAttributes
然后 里面会访问
private final Map<RequestMatcher, Collection<ConfigAttribute>> requestMap;
刚好是permitall。所以ok.
antMatchers permitall 这种是 对应这个ExpressionUrlAuthorizationConfigurer,而这个是对应的过滤器 FilterSecurityInterceptor,所以自己定义的里面没有?是