关于 j_spring_cas_security_check 404 问题的处理

CAS server认证通过并成功跳回客户系统,然后浏览器页面却显示循环重定向异常!
相信使用SSO-CAS开源框架的开发者中遇到此情况的人不在少数。

表面原因是循环重定向,进一步原因则是我们设置的登录路径存在问题导致跳转至默认页面,而默认页面又同样需要CAS认证,于是就不断的认证跳转认证跳转。

而再进一步分析,就我当前遇到的情况而言则是由于 rootpath/j_spring_cas_security_check 404 导致。
而这个问题是在开发过程中突然出现的,查看spring sec配置,web.xml 等等都无法定位异常原因。
折腾了很久,不得不推翻工程,重新进行试错配置,很幸运很快找到问题所在!一个我之前无论如何也怀疑不到的地方,即web.xml中 default servlet的引入,由于使用spring mvc,意在排除mvc对静态文件的处理所以让 default servlet预先处理之,加入
  <servlet-mapping>
  <servlet-name>default</servlet-name>
    <url-pattern>*.js</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
  <servlet-name>default</servlet-name>
    <url-pattern>*.css</url-pattern>
  </servlet-mapping>
  ......
  

而mvc相关的servlet 映射则是明确给出的 如
  <servlet-mapping>
    <servlet-name>cas-management</servlet-name>
    <url-pattern>/manage/add.html</url-pattern>
  </servlet-mapping>
......


这样配置完之后,问题就出现了,登录路径无论如何是返回404了。
解决方法是要么去掉 default的引入,要么将后面的配置用通配符代替明确的servlet映射
但是细想来也算是个奇葩的隐含规则,恕小生才疏学浅确实不知道有这么一出。





猜你喜欢

转载自lineshow.iteye.com/blog/2248747