CAS自定义登录

本文介绍了CAS单点登录系统,并探讨了在自定义登录页面时的两种策略:LT方式和TGT方式。LT方式涉及获取LT和execution,自定义登录失败的跳转逻辑,而TGT方式通过REST接口直接验证用户名和密码获取TGT。在分布式部署中,由于CAS默认使用本地缓存,需改为使用如Redis的共享缓存,并调整负载均衡策略。
摘要由CSDN通过智能技术生成

CAS系统介绍

CAS是单点登录系统(SSO)的一种,在多个应用系统中,只需要登录一次,就可以访问所有的系统。

一般会采用CAS统一登录页面,通过修改CAS中casLogin.jsp页面进行登录页面的改造。如果所有系统都是web端系统,建议采用这种方式。但在app登录或者个性化web需求中,就不得不考虑自定义登录了。

CAS自定义登录两种思路

  1. 修改login-webflow.xml文件,通过加入参数等方式,走不同的state,以获取Login Ticket(LT),在submit的时候,带上该LT,走正常的登录流程。且称为LT方式。
  2. 不走login-webflow,rest接口直接传入username、password,获取TGT。且称为TGT方式。

由于LT存放在CAS服务器本地,因此在集群部署的时候,我在项目中,使用的第二种方式。

LT方式

CAS统一登录页面的原理是,首先进入页面时,会获取到LT和execution,submit的时候,会对该LT进行验证。因此LT方式的目标是,自定义页面中,首先也获取到LT和execution,后续过程和统一的登录页面基本没区别。

So, 第一步:获取到LT和execution。一般如下流程:

  1. webflow中,添加action-state,根据传入的参数,判断走自定义的流程分支;
  2. 自定义流程分支中,要调用UniqueTicketIdGenerator生成LT,参考自带state:generateLoginTicket;
  3. 自定义流程分支中,要添加view-state及对应jsp页面,通过jsp页面做response返回。如:<%out.print(“json String”)%>

需要注意的是,此处如果是web端自定义登录页面,会有跨域问题。因此一般通过jsonp方式或iframe等,本人对前端不是太熟悉,不多提。

第一步获取LT后ÿ

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值