u011656717
陪葬品
采纳率100%
2017-06-19 02:23

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

10
已采纳

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • u011656717 陪葬品 4年前

    这个问题我自己解决了。出现这个问题是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

    点赞 评论 复制链接分享
  • u011656717 陪葬品 4年前

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




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

    点赞 评论 复制链接分享
  • qq455276333 在路上的JavaCoder-尹骑 4年前

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

    点赞 评论 复制链接分享