cas客户端集群无法登出问题

  • 问题描述

cas server 广播的登出请求,如果是接收到该请求的客户端是集群客户端,则无法确保集群的客户端能够顺利登出

集群A有客户端A1,A2,A3。客户端B登出,向cas server发出注销请求, 接着cas server 就会向所有客户端广播登出请求后,假设集群A中的A1接收到请求,如果session在A1,就退出A1就可以,假如session不在A1,由A1广播给集群里面的其他A2,A3,保证集群A可以登出。

  • 代码

1、 web.xml 改写SingleSignOutFilter,SingleSignOutHttpSessionListener替换掉原来的两个类
<!-- cas 单点登出 -->
<filter>
    <filter-name>SingleSignOutFilter</filter-name>
    <filter-class>com.cas.SingleSignOutFilter</filter-class>
    <!-- <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class> -->
</filter>

<filter-mapping>
    <filter-name>SingleSignOutFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<listener>
    <listener-class>com.cas.SingleSignOutHttpSessionListener</listener-class>
    <!-- <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class> -->
</listener>
2、 applicationContext.xml 配置cas客户端集群节点地址,用于cas客户端集群登出 见SingleSignOutFilter
<util:list id="clusterNodeUrls" list-class="java.util.ArrayList"> 
    <value>http://client1.cas.com:8085</value> 
    <value>http://client1.cas.com:8086</value> 
    <value>http://client1.cas.com:8087</value> 
</util:list>
3、 改写的SingleSignOutFilter,SingleSignOutHandler
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 【环境说明】: 本文演示过程在同一个机器上的(也可以在三台实体机器或者三个的虚拟机上),环境如下: windows...
    yljava阅读 13,106评论 3 8
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,073评论 19 139
  • from http://www.infoq.com/cn/articles/etcd-interpretation...
    小树苗苗阅读 14,733评论 3 38
  • CAS最基本的协议过程: 名词解释 Ticket Grangting Ticket(TGT) :TGT是CAS为用...
    llitfk_DockOne阅读 24,892评论 0 13
  • 朋友S和恋爱7年的男友分手了,大家都非常惋惜,他们看来,S的男友对他很好,7年的感情怎么能这么轻易就放下。但我知道...
    丽莎小叔阅读 3,961评论 0 1

友情链接更多精彩内容