单点登录服务端搭建之流程梳理与总结[cas-5.2.2]

本文详细梳理了CAS单点登录服务端的认证流程,包括直接使用CAS登录页面和自定义RESTful接口登录两种方式。重点解析了认证过程中关键步骤,如webflow配置、提交事件、用户信息认证、Ticket Granting Ticket(TGT)生成和服务Ticket(ST)生成等,为后续的个性化需求开发提供清晰的思路。
摘要由CSDN通过智能技术生成

本文主要是给自己做一个记录,防止遗忘,主要是针对想debug源码的,如果想debug源码可以看看,本人在公司负责搭建单点登录服务端,过程中遇到诸多小问题,cas的搭建很简单,根据cas官方网站资料即可完成基础的环境搭建,但是搭建完成后需要根据公司要求做一些个性化处理时需要对cas的整个认证过程有一个清晰的认识才能够高效的完成后面的个性化需求,在这里把本人已经花时间找出来的一些东西分享出来 ,也给自己留一个可追溯的资料

文中的类或者或者代码在工程中找不到可以按照下面的方式找到

1.在官方的github仓库或者下载到本地搜索类名,cas源码仓库地址
2.将类所在的jar 导入到自己的cas工程
3.这样就可以debug了

简单示范

我把源码下载到了本地,搜到了代码所在位置,找到了jar包名称

引入即可

追溯cas认证的整个流程

cas认证都有两种方式:
1.直接定向到cas提供好的登录页面完成登录动作
2.自己实现restful接口完成登录动作

第一种方式实现简单,但是代码流向一开始很模糊,根据源码跟踪,需要花费一定时间才能全部理清楚,这里把本人整理的代码流向整理了一下,便于对cas认证的整个过程有个清晰的认识,方便后面针对个性化需求,按照cas官方提供的扩展进行需求开发

  • 我们都很清楚,在我们接入cas后,我们会被重定向到一个登陆页面,在搭建的过程中,我们都了解到了cas的登陆流程是采用的spring web flow,于是可以找到webflow的配置文档,在官方提供的org.apereo.cas.cas-server-webapp-tomcat-5.2.2包下面我们可以找到login-webflow.xml,根据该配置文件内容可以找到
view-state id="viewLoginForm" view="casLoginView" 【所以对应的登陆页面就是casLoginView.html】 
  • 找到了登陆入口,那么可以找到登录动作触发的动作,在casLoginView.html,可以找到如下的登陆信息
 <div class="form-group">
            <input type="hidden" name="execution" th:value="${flowExecutionKey}"/>
            <input type="hidden" name="_eventId" value="submit"/>
            <input type="hidden" name="geolocation"/>
            <a class="btn btn-lg btn-primary btn-block" id="denglu" onclick="login()">登录</a>
 </div>
  • 根据_eventId可以确定触发的是login-webflow.xml中定义的submit 动作,根据配置文件可以submit对应的工作处理流程
 <view-state id="viewLoginForm" view="casLoginView" model="credential">
        <binder>
            <binding property="username" required="true"/>
            <binding property="password" required="true"/>
            <binding property="captcha" required="true" />
        </binder>
        <transition on="submit" bind="true" validate="true" to="realSubmit" history="invalidate"/>
    </view-state>

    <action-state id="realSubmit">
        <evaluate expression="authenticationViaFormAction"/>
        <transition on="warn" 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值