2 lh900525 lh900525 于 2013.10.29 11:19 提问

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
colin_i   2014.11.29 10:52

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!