如图,我配置了4个代理
pattern = "/**" 配置的encodingFilter 放在最下面则不起作用,放在最上面则下方
的filter不起作用,有哪个大佬能帮忙解释一下吗?
关于Spring security的 FilterChainProxy 的过滤代理问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 陪葬品 2017-06-19 06:57关注
这个问题我自己解决了。出现这个问题是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本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报