关于Spring security的 FilterChainProxy 的过滤代理问题

图片说明
如图,我配置了4个代理
pattern = "/**" 配置的encodingFilter 放在最下面则不起作用,放在最上面则下方
的filter不起作用,有哪个大佬能帮忙解释一下吗?

这个问题我自己解决了。出现这个问题是org.springframework.security.web.FilterChainProxy自己本身的拦截机制问题
这里配置的拦截匹配顺序是从上往下
然后只执行第一条符合匹配条件的
例如如下配置:
<security:filter-chain pattern="/**" filters="encodingFilter"/>
< security:filter-chain pattern="/**/*.js" filters="printUrlFilter"/ >
<security:filter-chain pattern="/**/*.jsp" filters="printUrlFilter"/>
<security:filter-chain pattern="/**/*.do" filters="printUrlFilter" />
所有URL都与匹配<security:filter-chain pattern="/**" filters="encodingFilter"/>
也就是只会执行这个encodingFilter,且不会去走下面其他parrtern的filters
也就是配置顺序有上往下应该范围从小到大。而且全局配置建议到web.xml配置单独的filter

你的配置url拦截范围太大,需要缩小范围

这个问题我自己解决了。出现这个问题是org.springframework.security.web.FilterChainProxy自己本身的拦截机制问题
这里配置的拦截匹配顺序是从上往下
然后只执行第一条符合匹配条件的
例如如下配置:




所有URL都与匹配
也就是只会执行这个encodingFilter,且不会去走下面其他parrtern的filters
也就是配置顺序有上往下应该范围从小到大。而且全局配置建议到web.xml配置单独的filter