springboot 集成cas5.3 通过Restful协议请求认证和退出

前面我们讲解了一些列的CAS文章,对CAS有了很多了解。今天我们讲解一个现在服务常用的REST协议来完成CAS的登录、认证,不需要我们手动登录跳转到CAS的登录页面就可以完成CAS的一些列操作。

我们知道CAS认证支持包括多种协议去认证,包括CAS、OAuth、SAML1、SAML2、REST Protocol等协议,这里我们采用REST协议去获取TGT,然后获取到TGT后获取到ST,最后拿到ST后再去访问服务。

在这里插入图片描述

一、认证服务

首先我们加入Rest服务依赖:

<!-- Restful support -->
<dependency>
    <groupId>org.apereo.cas</groupId>
    <artifactId>cas-server-support-rest</artifactId>
    <version>${
    
    cas.version}</version>
</dependency>

修改票据默认过期时间

##
# Ticket过期设置,默认是10秒
#
cas.ticket.st.numberOfUses=1
cas.ticket.st.timeToKillInSeconds=6000

其他操作呢?没了,就是如此简单,启动服务,接下来就是Restful操作。

获取TGT票据

http://localhost:8080/cas/v1/tickets(x-www-form-urlencoded格式)
username(账号)
password(密码)
service(客户端服务地址,如:http://localhost:8090/,地址一定要统一,建议带上斜杠)

在这里插入图片描述

使用获取到的TGT票据申请ST票据

http://localhost:8080/cas/v1/tickets/TGTxxxxxxxxxxxxxx(x-www-form-urlencoded格式)
service(客户端服务地址,如:http://localhost:8090/,地址一定要统一,建议带上斜杠)

在这里插入图片描述
带上票据访问目标客户端

http://localhost:8090?ticket=ST-2-ZvIA49ULFLvNhyLGMzk21iE7gLsat21-PC

再次访问目标客户端,发现不用登录也能访问,需要注意的是,一个ST票据只能使用一次!
在这里插入图片描述

验证ST 只获取登录名

(GET)
http://localhost:8080/cas/serviceValidate?service=(申请的客户端服务地址)&ticket=(获取到的ST票据)

在这里插入图片描述

验证ST 获取多属性

(GET)
http://localhost:8080/cas/p3/serviceValidate?service=(申请的客户端服务地址)&ticket=(获取到的ST票据)

在这里插入图片描述

验证TGT

http://localhost:8080/cas/v1/tickets/TGTxxxxxxxxxxxcxxx(GET)

在这里插入图片描述

销毁TGT

http://localhost:8080/cas/v1/tickets/TGTxxxxxxxxxxxxxxx(DELETE)

在这里插入图片描述
再次验证
在这里插入图片描述

问题

未能够识别出目标 'ST-1-K5ieqntwqOaxBALpX8KHTw3RTwQat21-PC’票根

加斜杠问题

https://blog.csdn.net/u010588262/article/details/79818494

完结,如果想了解更多cas文章,请看我以往的文章。

猜你喜欢

转载自blog.csdn.net/u014641168/article/details/121136163