<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[joeljx的专栏]]></title><description><![CDATA[java学习的乐园]]></description><link>https://blog.youkuaiyun.com/joeljx</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; joeljx]]></copyright><item><title><![CDATA[java实现修改pom.xml中版本信息]]></title><link>https://blog.youkuaiyun.com/joeljx/article/details/117987769</link><guid>https://blog.youkuaiyun.com/joeljx/article/details/117987769</guid><author>joeljx</author><pubDate>Thu, 17 Jun 2021 11:56:47 +0800</pubDate><description><![CDATA[在java基于流程化的开发过程中，版本管理一直是开发需要直面的问题。在目前基于maven开发下，由pom完成统一的版本管理，但是在进行目标版本升级时，常常会让人感到头痛。
]]></description><category></category></item><item><title><![CDATA[CAS单点登录开源框架解读（十七）--ticket失效策略]]></title><link>https://blog.youkuaiyun.com/joeljx/article/details/113249798</link><guid>https://blog.youkuaiyun.com/joeljx/article/details/113249798</guid><author>joeljx</author><pubDate>Wed, 27 Jan 2021 19:51:53 +0800</pubDate><description><![CDATA[本文主要讲解ticket的失效判断策略，源码目前还是以开源cas4.2.7版本为主。
ticket失效策略的默认使用类
ticket的失效可分为两类一个是TGT（TicketGrantingTicket）的失效策略，另外一个是ST（ServiceTicket）的失效策略。结合源码我们可知在创建ticket的时候就必须放入对应的失效策略，针对不同的ticket会放入不同的失效策略，先看看具体有多少种失效策略。
具体的失效策略主要是实现ExpirationPolicy这个接口类来完成，然后基于实现的抽象类Abs]]></description><category></category></item><item><title><![CDATA[CAS单点登录开源框架解读（十六）--单点登录服务端TGC校验，导致无法获取到tgt，响应401]]></title><link>https://blog.youkuaiyun.com/joeljx/article/details/104060035</link><guid>https://blog.youkuaiyun.com/joeljx/article/details/104060035</guid><author>joeljx</author><pubDate>Tue, 21 Jan 2020 12:06:09 +0800</pubDate><description><![CDATA[单点登录情况下的现象
在单点登录情况，客户端应用接入CAS服务端后，特别是外网环境会经常出现401的问题，要么直接跳转到登录页面，要么就直接响应401。注意此时CAS服务端的TGT并没有超时。只能排查后端的日志信息，开启debug模式看到了如下的后端异常信息：
 [org.jasig.cas.web.support.TGCCookieRetrievingCookieGenerator] - Inv...]]></description><category></category></item><item><title><![CDATA[前后端分离系统接入CAS单点登录说明（十五）]]></title><link>https://blog.youkuaiyun.com/joeljx/article/details/101756215</link><guid>https://blog.youkuaiyun.com/joeljx/article/details/101756215</guid><author>joeljx</author><pubDate>Mon, 30 Sep 2019 11:20:01 +0800</pubDate><description><![CDATA[前后端分离说明
目前越来越多的系统采用前后端分离技术来进行构建，这类系统需要接入CAS单点登录系统，是否有很好的解决方案呢？
前后端分离之后，前端如何保存数据呢？一般前端的本地存储方式有：localStorage、sessionStorage、cookie、webSQL、indexedDB等。这些技术有什么差异和区别，这个不在此展开。目前情况下一般都会采用localStorage、sessionS...]]></description><category></category></item><item><title><![CDATA[CAS单点登录开源框架解读（十四）--CAS单点登录代理模式之代理发送请求CAS服务端校验过程]]></title><link>https://blog.youkuaiyun.com/joeljx/article/details/89510442</link><guid>https://blog.youkuaiyun.com/joeljx/article/details/89510442</guid><author>joeljx</author><pubDate>Thu, 22 Aug 2019 18:01:00 +0800</pubDate><description><![CDATA[代理模式下CAS服务端验证票据
在上一章节中已经分析代理端发起验证票据的过程，那么接下来我们就要对于CAS单点登录服务端在代理模式下是如何进行接收客户端数据进行校验并返回给客户端的过程进行分析。

ServiceValidateController调用“/serviceValidate”
AbstractServiceValidateController父类处理具体的请求逻辑



...]]></description><category></category></item><item><title><![CDATA[CAS单点登录开源框架解读（四）--扩展--登录页隐藏属性"execution"值如何产生]]></title><link>https://blog.youkuaiyun.com/joeljx/article/details/99587726</link><guid>https://blog.youkuaiyun.com/joeljx/article/details/99587726</guid><author>joeljx</author><pubDate>Wed, 14 Aug 2019 18:46:58 +0800</pubDate><description><![CDATA[这里写自定义目录标题登录流程配置cas-servlet.xml登录流程之执行实现FlowExecutorImpl和FlowExecutionImpl登录流程之Flow和状态类State登录流程之Transition过渡流程判断和ViewState页面初始化准备
登录流程配置cas-servlet.xml
在登录流程发起之前，先看一些cas是如何通过配置加载到login-webflow.xml这个登...]]></description><category></category></item><item><title><![CDATA[CAS单点登录开源框架解读（十三）--CAS单点登录代理模式之代理端验证获取用户身份过程]]></title><link>https://blog.youkuaiyun.com/joeljx/article/details/89378990</link><guid>https://blog.youkuaiyun.com/joeljx/article/details/89378990</guid><author>joeljx</author><pubDate>Fri, 19 Apr 2019 13:45:02 +0800</pubDate><description><![CDATA[代理模式访问过程
分两步实现代理过程：
1、用户先访问CAS单点登录代理端（也就是上一章节中客户端1）的地址	
url1：http://localhost:8088/cas-client/test，此地址就是用于普通的单点登录。
2、再访问CAS单点登录代理端地址
url2：
http://localhost:8088/cas-client/proxyServlet
在上一章节中我们知道在url的...]]></description><category></category></item><item><title><![CDATA[CAS单点登录开源框架解读（十二）--CAS单点登录代理模式之环境配置]]></title><link>https://blog.youkuaiyun.com/joeljx/article/details/89356342</link><guid>https://blog.youkuaiyun.com/joeljx/article/details/89356342</guid><author>joeljx</author><pubDate>Wed, 17 Apr 2019 15:00:59 +0800</pubDate><description><![CDATA[环境准备




服务器名称
访问地址




CAS认证服务器
http://localhost:8080/cas


CAS单点登录客户端1（可代理访问客户端2）
http://localhost:8088/cas-client


CAS单点登录客户端2（被代理服务端）
http://localhost:8087/cas-client-be-used-to-proxy


http://lo...]]></description><category></category></item><item><title><![CDATA[CAS单点登录开源框架解读（十一）--CAS单点登录代理模式之概述]]></title><link>https://blog.youkuaiyun.com/joeljx/article/details/89350385</link><guid>https://blog.youkuaiyun.com/joeljx/article/details/89350385</guid><author>joeljx</author><pubDate>Wed, 17 Apr 2019 10:11:39 +0800</pubDate><description><![CDATA[解析代理模式
在接下来的文章中，我们将对CAS单点登录的代理模式进行解析。讲解如何对代理模式进行使用和测试
1. 代理模式时序图
下图为CAS单点登录代理模式下的序列图，网摘自https://apereo.github.io/cas/4.2.x/protocol/CAS-Protocol.html。

使用场景简单说明：当浏览器用户访问代理应用A，代理应用A中调用了被代理应用B的授权性资源，代理应...]]></description><category></category></item><item><title><![CDATA[CAS单点登录开源框架解读（十）--CAS单点登录客户端认证之客户端接收服务端认证信息]]></title><link>https://blog.youkuaiyun.com/joeljx/article/details/89077150</link><guid>https://blog.youkuaiyun.com/joeljx/article/details/89077150</guid><author>joeljx</author><pubDate>Sun, 07 Apr 2019 23:05:00 +0800</pubDate><description><![CDATA[客户端如何接收服务端认证信息
上一章节我们分析了CAS服务端是如何产生认证信息的，那么这一章节我们将解析客户端是如何接收服务端的认证信息。这里所说的客户端指的是接入CAS单点登录系统的应用，是一个独立的应用。客户端的源码分析都是基于CAS服务端提供的集成包cas-client-core。
1. 返回到CommonUtils.getResponseFromServer()
在我们分析客户端如何接收服...]]></description><category></category></item><item><title><![CDATA[CAS单点登录开源框架解读（九）--CAS单点登录客户端认证之服务端验证票据返回认证信息]]></title><link>https://blog.youkuaiyun.com/joeljx/article/details/88997424</link><guid>https://blog.youkuaiyun.com/joeljx/article/details/88997424</guid><author>joeljx</author><pubDate>Wed, 03 Apr 2019 15:49:18 +0800</pubDate><description><![CDATA[服务端如何返回用户认证信息
上一章节中我们已经知道是通过http请求去到CAS服务端获取信息，根据CAS单点登录客户端的请求地址/serviceValidate，我们再CAS单点登录服务端上通过Springmvc根据url里的/serviceValidate，匹配到@RequestMapping(path="/serviceValidate")
1. ticket校验开始：serviceValid...]]></description><category></category></item><item><title><![CDATA[CAS单点登录开源框架解读（八）--CAS单点登录客户端认证之客户端向服务端发起请求]]></title><link>https://blog.youkuaiyun.com/joeljx/article/details/88973019</link><guid>https://blog.youkuaiyun.com/joeljx/article/details/88973019</guid><author>joeljx</author><pubDate>Tue, 02 Apr 2019 15:22:57 +0800</pubDate><description><![CDATA[客户端是如何向服务端发起请求的
前面客户端部分讲过，客户端的web.xml里配置了五个filter。下文中会使用序号来表示，具体的过滤器名称可以看上一章节。
1. 调用第1个filter
首先进入第一个filter：SingleSignOutFilter，因为现在是进行登录认证，没有登出请求，所以什么都没做，进入下一个filter。
2. 调用第2个filter
*AuthenticationFi...]]></description><category></category></item><item><title><![CDATA[CAS单点登录开源框架解读（七）--CAS单点登录客户端认证之客户端过滤拦截]]></title><link>https://blog.youkuaiyun.com/joeljx/article/details/88966924</link><guid>https://blog.youkuaiyun.com/joeljx/article/details/88966924</guid><author>joeljx</author><pubDate>Tue, 02 Apr 2019 11:28:28 +0800</pubDate><description><![CDATA[CAS单点登录客户端跳转过程解析，主要针对客户端包cas-client-core
用户首次访问CAS单点登录客户端（对应流程图第1步），访问地址：http://localhost:8088/cas-client/

1. CAS单点登录客户端被客户端5个filter拦截
CAS单点登录客户端总共有5个filter，上述url都能匹配上，所以按顺序进入5个filter 。本文客户端分析源码采用cas...]]></description><category></category></item><item><title><![CDATA[CAS单点登录开源框架解读（六）--CAS单点登录服务端认证之用户认证跳转]]></title><link>https://blog.youkuaiyun.com/joeljx/article/details/88942061</link><guid>https://blog.youkuaiyun.com/joeljx/article/details/88942061</guid><author>joeljx</author><pubDate>Mon, 01 Apr 2019 09:55:44 +0800</pubDate><description><![CDATA[用户认证之后如何执行后续跳转
在上一章节中，我们知道了默认CAS服务端是如何通过配置文件实现用户登录名和密码的认证，下面我们将继续对认证之后的动作处理进行分析。
1. 发送TGT之行为状态sendTicketGrantingTicket
身份验证成功后进入sendTicketGrantingTicket行为状态。
*login-webflow.xml：*
&lt;action-state id="...]]></description><category></category></item><item><title><![CDATA[CAS单点登录开源框架解读（五）--CAS单点登录服务端认证之用户认证]]></title><link>https://blog.youkuaiyun.com/joeljx/article/details/88885441</link><guid>https://blog.youkuaiyun.com/joeljx/article/details/88885441</guid><author>joeljx</author><pubDate>Fri, 29 Mar 2019 11:25:32 +0800</pubDate><description><![CDATA[如何进行用户身份认证
在第四章节中已经分析了如何输入请求地址跳转到登录页面的流程，下面就要进行登录页面输入用户信息进行用户认证的具体流程。



行为状态realSubmit
*login-webflow.xml：*

&lt;action-state id="realSubmit"&gt;
    &lt;evaluate
            expression="authenticati...]]></description><category></category></item><item><title><![CDATA[CAS单点登录开源框架解读（四）--CAS单点登录服务端认证之通过loginflow进入登录页面]]></title><link>https://blog.youkuaiyun.com/joeljx/article/details/88813860</link><guid>https://blog.youkuaiyun.com/joeljx/article/details/88813860</guid><author>joeljx</author><pubDate>Fri, 29 Mar 2019 11:25:14 +0800</pubDate><description><![CDATA[如何通过loginflow进入登录页面
上面一章节分析了如何进入流程loginFlowRegistry的相关代码,下面看是如何通过loginFlowRegistry登录流程，进入并展示登录页面。


解析AbstractAction
由于CAS单点登录采用的是Spring web flow框架进行设计开发的，我们先大致看webflow的架构代码。
在上一章节的第6节中我们没有展开说明的登录入口处理...]]></description><category></category></item><item><title><![CDATA[CAS单点登录开源框架解读（三）--CAS单点登录服务端认证之loginFlowRegistry流程]]></title><link>https://blog.youkuaiyun.com/joeljx/article/details/88812944</link><guid>https://blog.youkuaiyun.com/joeljx/article/details/88812944</guid><author>joeljx</author><pubDate>Fri, 29 Mar 2019 11:24:45 +0800</pubDate><description><![CDATA[如何进入loginFlowRegistry流程
1、如何从”/”变为”/login”
	在4.2.6源码包中的cas-server-webapp工程下，webapp\WEB-INF\目录下有个web.xml文件，其中有如下的配置。

*web.xml:*
&lt;welcome-file-list&gt;
        &lt;welcome-file&gt;index.jsp&lt;/welc...]]></description><category></category></item><item><title><![CDATA[CAS单点登录开源框架解读（二）--环境准备]]></title><link>https://blog.youkuaiyun.com/joeljx/article/details/79230517</link><guid>https://blog.youkuaiyun.com/joeljx/article/details/79230517</guid><author>joeljx</author><pubDate>Mon, 25 Mar 2019 18:10:57 +0800</pubDate><description><![CDATA[为了解读代码，我们首先需要获取到CAS单点登录的源码。


	源文件及版本

	  cas-4.2.6.zip

	 cas-client-core-3.4.1.jar

	 spring-webflow-2.4.2.RELEASE.zip

	 spring-framework-4.2.x.zip
	
	
	环境

	 操作系统：win7

	 IDE：eclip...]]></description><category></category></item><item><title><![CDATA[CAS单点登录开源框架解读（一）--模式说明]]></title><link>https://blog.youkuaiyun.com/joeljx/article/details/79230240</link><guid>https://blog.youkuaiyun.com/joeljx/article/details/79230240</guid><author>joeljx</author><pubDate>Mon, 25 Mar 2019 18:01:00 +0800</pubDate><description><![CDATA[CAS单点登录下存在两种登录认证模式，第一种我姑且叫它为普通模式吧，因为这种类型是我们使用的最多的场景；另外一种是代理模式，这种模式不常见，但是CAS单点登录是支持的，也在这里一并说明。采用时序图来进行相关的说明，展示两种模式的不同点。

在说展示具体的时序图之前，先把几个概念表达一下。

ST(Service Ticket )。ST是CAS为用户签发的访问某一service的票据。用户访问se...]]></description><category></category></item><item><title><![CDATA[CAS单点登录开源框架解读--序言]]></title><link>https://blog.youkuaiyun.com/joeljx/article/details/79230068</link><guid>https://blog.youkuaiyun.com/joeljx/article/details/79230068</guid><author>joeljx</author><pubDate>Mon, 25 Mar 2019 18:00:40 +0800</pubDate><description><![CDATA[计划在19年能够把CAS单点登录的源码进行一个详细的解读，可能理解会有不足，但还是想要坚持下去。

CAS单点登录主要用于统一认证中心，实现不同系统之间的单点登录，也即一处登录之后，访问其他系统

无需用户再次登录，方便用户在不同系统之间的使用。

本次解读大致会从以下几个方面开始：

1、CAS单点登录模式说明（普通模式和代理模式）

2、CAS单点登录源码环境搭建

3、CAS单点登录源...]]></description><category></category></item></channel></rss>