我正在开发一个典型的Web应用程序,但是通过Shiro和使用JASIG CAS SSO执行身份验证和授权。我的应用程序是在tomcat 7上运行的JSF 2 webapp。我启用了Shiro,在我的Shiro配置中,我已经连接到CAS领域。一切正常......也就是说,Web应用程序运行正常,shiro重定向到CAS登录页面。反过来,CAS会将我重定向回原来请求的URL。 然后什么都没发生!!! 我得到一个重定向循环!
https://myhost:8443/gdsicache/secured/index?ticket=ST-37-L2N7SCVtHxHWENqBfpOY-cas01.example.org
从链接中可以看出:我被重定向到请求的安全资源https://myhost/gdsicache/secured/index
,我也得到了一张票,但最后却循环了。
有没有人知道为什么流程会在重定向循环中结束?因为除了我的Web.xml文件中的shiro过滤器之外没有任何其他过滤器,所以我没有再进行重定向。
答案 0 :(得分:1)
此重定向循环通常由JVM无法识别的服务器证书引起,主要由客户端机器JVM识别。如果您的应用程序与服务器(尤其是JVM)分离,则应确保您具有CA颁发的导入根,中间(有时是交叉)证书。否则您的CAS客户端将执行循环,因为它无法识别您服务器上的证书。
请注意,它不是引起问题的浏览器证书,而是JVM。
PS。您可能还需要将root,intermeadiate(和某些交叉)证书导入CAS服务器JVM。