CAS单点登录四-单点登出

来源:互联网 发布:中国电子数据有限公司 编辑:程序博客网 时间:2024/05/06 07:16

实现最基本的单点登出只需在client处的web.xml中加入一个过滤器和一个监听器

    <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>          <init-param>              <param-name>casServerUrlPrefix</param-name>              <param-value>https://cas.com:8443/cas</param-value>        </init-param>      </filter>      <filter-mapping>          <filter-name>CAS Single Sign Out Filter</filter-name>          <url-pattern>/*</url-pattern>      </filter-mapping>
过滤器里要注意一下,网上的很多文章都是没有“casServerUrlPrefix”这个参数的,可能是由于版本的原因。我用的3.5.2的没有这个参数启动是会报错的。所以一定要加上这个参数。

让后server端登出只需要访问server端的https://cas.com:8443/cas/logout地址就可以了。server会通知所有客户端用户已登出,销毁各自的session的。


这样登出后会默认停留在注销成功的页面,如果想跳到其它页面,重定向的时候加service参数

redirect:https://cas.com:8443/cas/logout?service=https://cas.com:8443/cas/login
同时要修改server端的cas-servlet.xml

将其中的logoutController中p:followServiceRedirects改成true

<bean id="logoutController" class="org.jasig.cas.web.LogoutController"        p:centralAuthenticationService-ref="centralAuthenticationService"        p:logoutView="casLogoutView"        p:warnCookieGenerator-ref="warnCookieGenerator"        p:ticketGrantingTicketCookieGenerator-ref="ticketGrantingTicketCookieGenerator"        p:servicesManager-ref="servicesManager"        p:followServiceRedirects="${cas.logout.followServiceRedirects:false}"/>


转载请注明出处:http://blog.csdn.net/redstarofsleep

1 0