lh900525 2013-10-29 03:19 采纳率: 0%
浏览 2408

struts2 路径容错 和springSecurity权限路径验证冲突问题

struts2的路径具有按包容错机制。
比如访问test.action 正确路径为(忽略namespace):http://ip:端口/项目名/test.action ,
但是struts2提供容错机制 则访问:http://http://ip:端口/项目名/包1/包2/包n/test.action 都可以正确访问到。

当springSecurity2.x和struts2配合使用时,在web.xml中springSecurity的filter要配置到struts的前面,这样才能保证springSecurity的过滤器不会被struts2拦截掉。
当springSecurity资源配置为/aa.action时,正常情况下访问 http://ip:端口/项目名/test.action springSecurity会拿到 /test.action去spring缓存中对比,发现有此资源配置,则判断登陆用户是否拥有该权限,正常执行……
若访问http://http://ip:端口/项目名/包1/包2/包n/test.action springSecurity会拿到 /包1/包2/包n/test.action去spring缓存中对比,发现无此资源配置,则通过。到struts2过滤器时,将/包1/包2/包n/test.action容错,找到正确的http://ip:端口/项目名/test.action 访问成功。
这样,springSecurity中对于action的权限控制就会被破坏。
求解答:
1、struts2是否由相关配置关掉路径容错?
2、springSecurity在路径对比时,调用AntPathMatcher中doMatch,是否有必要重写此方法?

  • 写回答

1条回答

  • colin_i 2014-11-29 02:52
    关注

    现在我也是遇到了跟你一样的问题,请问你解决了没有?我还没找到解决的办法了。不知道能不能把struts2的这种容错能力给关掉。。。

    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站