CAS SSO 代码及依赖的jar下载: http://download.csdn.net/detail/nmsbq/9875610
1.配置注销后支持跳转到制定的地址 WEB-INF/cas.properties文件 改成true
cas.logout.followServiceRedirects=true
2.客户端
web.xml 中在登录的filter之前增加
<!--单点退出配置-->
<listener>
<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>
<filter>
<filter-name>CAS Single Sign Out Filter</filter-name>
<filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CAS Single Sign Out Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3.修改注销时的链接
在客户端系统要配置的系统“退出”链接后加上“?service=退出返回后的地址”,例如:CAS测试用的两个客户端的配置。例如:
<ahref="https://cas.test123.com:8843/cas/logout?service=http://client.test123:8080”>退出</a>
4.总结
/logout: ( 对应实现类 org.jasig.cas.web.LogoutController ),注销的处理逻辑如下:
(1) removeCookie
(2) 在服务端删除TicketGrantingTicket 对象(此对象封装了cookie 的value 值)
(3) redirect 到退出页面,有2 种选择:
l 如果LogoutController 的followServiceRedirects 属性为true 值,且url 里的service 参数非空,则redirect 到 sevice 参数标识的url;
l 否则, redirect 到内置的casLogoutView ,如果url 里有url 参数,则此url 参数标识的链接会显示在casLogoutView 页面上。
耐心的看看这些开源框架的源码,你很容易就明白了为什么这么做;当然如果熟读源码的话,你就可以按着自己的想法随意的修改框架的各个部分。