spring+shiro+cas的整合问题之循环重定向

来源:互联网 发布:spss多维数据分析 编辑:程序博客网 时间:2024/06/08 11:31
场景介绍:
1.CAS服务器采用JASIG CAS 【3.5.3】
2.SHIRO【1.2.3】
3.SPRING【4.1.RELEASE】
服务器配置的域名为www.test.com,登录的路径为www.test.com/cas/
客户应用域名为localhost:8080,应用的项目地址为localhost:8080/demo/admin/main,(登录地址为:localhost:8080/demo/admin/login).
要达到的效果是登录项目地址自动重定向到cas服务器登录,然后登录成功后转到项目的地址。

循环重定向的问题

客户应用的CAS拦截器配置的拦截地址和successUrl相同,导致CAS认证成功后跳转到successUrl后依然被CAS拦截认证导致一直循环跳转。
失败的循环重定向需要检查下Rleam的failUrl地址是否和loginurl相同。
注意:springmvc配置的默认地址为/admin/,以让项目启动即跳转到CAS服务器,
            CAS拦截器拦截的地址最好是一个具体的地址,而不应该是同一种格式的,我的项目中就应该是
<property name="filterChainDefinitions"><value>/admin/=cas</value></property>
shiroFilter中配置
<property name="loginUrl" value="http://www.test.com/cas/login?service=http://localhost:8080/demo/admin/" /><property name="successUrl" value="http://localhost:8080/demo/admin/main" />
注意:loginUrl和successUrl是不相同的,[相同会循环跳转].
为了能够在登录失败的时候跳转到CAS登录,做以下配置:
<bean id="casFilter" class="org.apache.shiro.cas.CasFilter"><property name="failureUrl" value="<span style="font-family: Arial, Helvetica, sans-serif;">http://www.test.com/cas/login?service=http://localhost:8080/demo/admin/</span>"/></bean>




0 0
原创粉丝点击