SSO单点登录一:cas单点登录防止登出退出后刷新后退ticket失效报500错,也有退出后直接重新登录报票根验证错误

摘要:
我尝试使用SAML进行身份验证和票证验证,但在调试期间,我发现单点注销方法只能识别CAS身份验证和验证。身份验证:org.jasig.cas.client.Authentication。AuthenticationFilter验证:org.jasig.cas.client.validation。Cas20ProxyReceivingTicketValidationFilter筛选器顺序:1.CASSingleSignOutFilter2.CASValidationFilter3.CASAuthenticationFilter4.CASHttpServletRequestWrapperFilter5.CASAssertionThreadLocalFilter请特别注意验证是在身份验证之前,因为我使用的是Cas20ProxyCreceivingTicketValidation筛选器。根据CAS文档描述:如果您使用的是代理验证,那么应该在验证过滤器之前映射验证过滤器。11617org.jasig.cas.client。session SingleSignOutHttpSessionListener181920<filter>21<filter name>CASSingleSignOutFilter</filter name>22<filter class>org。贾西格。cas公司。客户session SingleSignOutFilter232425CASSingleSignOutFilter26/*272829˂!

问题1: 我登录了client2,又登录了client3,现在我把client2退出了,在client3里面我F5刷新了一下,结果页面报错:

未能够识别出目标 'ST-41-2VcnVMguCDWJX5zHaaaD-cas01.example.org'票根

问题2:登录了client,然后退出,再重新输入用户名,结果页面也会报错 验证 'ST-41-2VcnVMguCDWJX5zHaaaD-cas01.example.org'失败

解决方法:自己测试了多遍并在网上做了参考后修改,最后验证成功,之后就不报错了。解决办法如下:

单点登出,客户端配置。我尝试使用SAML作为认证和Ticket校验,但是调试时发现单点登出取标识的方式只能识别CAS的认证和校验。
认证:org.jasig.cas.client.authentication.AuthenticationFilter
校验:org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter
过滤器顺序:
1. CAS Single Sign Out Filter
2. CAS Validation Filter
3. CAS Authentication Filter
4. CAS HttpServletRequest Wrapper Filter
5. CAS Assertion Thread Local Filter
特别注意Validation在Authentication之前,因为我使用的是Cas20ProxyReceivingTicketValidationFilter。

根据CAS文档描述:If you are using proxy validation, you should map the validation filter before the authentication filter.

 1  <!--   /****cas配置******/ -->
 2 
 3 <filter>
 4     <filter-name>characterEncodingFilter</filter-name>
 5     <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
 6     <init-param>
 7         <param-name>encoding</param-name>
 8         <param-value>UTF-8</param-value>
 9     </init-param>
10 </filter>
11 <filter-mapping>
12     <filter-name>characterEncodingFilter</filter-name>
13     <url-pattern>/*</url-pattern>
14 </filter-mapping>
15 <!-- 与CAS Single Sign Out Filter配合,注销登录信息 -->
16 <listener>
17 <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
18 </listener>
19 <!-- CAS Server 通知 CAS Client,删除session,注销登录信息 -->
20 <filter>
21 <filter-name>CAS Single Sign Out Filter</filter-name>
22     <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>
23 </filter>
24 <filter-mapping>
25     <filter-name>CAS Single Sign Out Filter</filter-name>
26     <url-pattern>/*</url-pattern>
27 </filter-mapping>
28 
29 <!-- CAS Client向CAS Server进行ticket验证 -->
30 <filter>
31     <filter-name>CAS Validation Filter</filter-name>
32     <filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
33     <init-param>
34         <param-name>casServerUrlPrefix</param-name>
35         <param-value>http://cas.youjiao.tjxddfdfqjy.com/cas</param-value>
36     </init-param>
37     <init-param>
38         <param-name>serverName</param-name>
39         <param-value>http://xxpt.yodfdfujiao.tjxqjy.com</param-value>
40     </init-param>
41 </filter>
42 
43 <filter-mapping>
44     <filter-name>CAS Validation Filter</filter-name>
45     <url-pattern>/system/login/fm.jsp</url-pattern>
46 </filter-mapping>
47 
48 <!-- 登录认证,未登录用户导向CAS Server进行认证 -->
49 <filter>
50     <filter-name>CAS Filter</filter-name>
51     <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
52     <init-param>
53         <param-name>casServerLoginUrl</param-name>
54         <param-value>http://cas.youjiao.tjxqjdcfdy.com/cas/login</param-value>
55     </init-param>
56     <init-param>
57         <param-name>serverName</param-name>
58         <param-value>http://xxpt.youdfdjiao.1tssjxqjy.com</param-value>
59     </init-param>
60 </filter>
61 <filter-mapping>
62     <filter-name>CAS Filter</filter-name>
63     <url-pattern>/system/login/fm.jsp</url-pattern>
64 </filter-mapping>
65 
66 <!-- 封装request, 支持getUserPrincipal等方法 -->
67 <filter>
68     <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
69     <filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
70 </filter>
71 <filter-mapping>
72     <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
73     <url-pattern>/*</url-pattern>
74 </filter-mapping>
75 <!-- 存放Assertion到ThreadLocal中 -->
76 <filter>
77     <filter-name>CAS Assertion Thread Local Filter</filter-name>
78     <filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>
79 </filter>
80 <filter-mapping>
81     <filter-name>CAS Assertion Thread Local Filter</filter-name>
82     <url-pattern>/*</url-pattern>
83 </filter-mapping>

这样配置以后基本就解决这个问题了。

免责声明:文章转载自《SSO单点登录一:cas单点登录防止登出退出后刷新后退ticket失效报500错,也有退出后直接重新登录报票根验证错误》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MS COCO 数据集学习笔记(Common Objects in COntext)java8学习之Stream深度解析与源码实践下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SpringBoot集成SpringSecurity+CAS

1 简介 本文主要讲述如何通过SpringSecurity+CAS在springboot项目中实现单点登录和单点注销的功能。 2 项目依赖 主要依赖如下 <dependency>   <groupId>org.springframework.boot</groupId>   <artifactId>sprin...

基于 Cookie 的 SSO 中间件 kisso

kisso  =  cookie sso 基于 Cookie 的 SSO 中间件,它是一把快速开发 java Web 登录系统(SSO)的瑞士军刀。欢迎大家使用 kisso !!  kisso 帮助文档下载 1、支持单点登录 2、支持登录Cookie缓存 3、支持防止 xss攻击, SQL注入,脚本注入 4、支持 Base64 / MD5 / A...

Django-REST-Framework JWT 实现SSO认证(下)

在上一篇博客中,我已经对JSON Web 认证做了简单的解释,这篇博客是续篇,若不了解,请看上一篇博客:https://www.cnblogs.com/yushenglin/p/10863184.html 一.安装djangorestframwork-jwt 二.用法 在你的settings.py,添加JSONWebTokenAuthentication...

漫谈单点登录(SSO)

1. 摘要 ( 注意:请仔细看下摘要,留心此文是否是您的菜,若浪费宝贵时间,深感歉意!!!) SSO这一概念由来已久,网络上对应不同场景的成熟SSO解决方案比比皆是,从简单到复杂,各式各样应有尽有!开源的有OpenSSO、CAS ,微软的AD SSO,及基于kerberos 的SSO等等……这些优秀的解决方案尽显开发及使用者的逼格,当然需求所致无谓好坏高...

从jvm的角度来看java的多线程

最近在学习jvm,发现随着对虚拟机底层的了解,对java的多线程也有了全新的认识,原来一个小小的synchronized关键字里别有洞天。决定把自己关于java多线程的所学整理成一篇文章,从最基础的为什么使用多线程,一直深入讲解到jvm底层的锁实现。 多线程的目的 为什么要使用多线程?可以简单的分两个方面来说: 在多个cpu核心下,多线程的好处是显而易见...

1046

Gridland Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4127 Accepted Submission(s): 1900 Problem Description For y...