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

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

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


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

image.png

一、认证服务

首先我们加入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/,地址一定要统一,建议带上斜杠)

image.png

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

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

image.png

带上票据访问目标客户端

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

再次访问目标客户端,发现不用登录也能访问,需要注意的是,一个ST票据只能使用一次!

image.png

验证ST 只获取登录名

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


image.png

验证ST 获取多属性

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

image.png

验证TGT

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

image.png

销毁TGT

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

image.png

再次验证

image.png

问题

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

加斜杠问题

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

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

目录
相关文章
|
1月前
|
安全 Java 数据库
安全无忧!在 Spring Boot 3.3 中轻松实现 TOTP 双因素认证
【10月更文挑战第8天】在现代应用程序开发中,安全性是一个不可忽视的重要环节。随着技术的发展,双因素认证(2FA)已经成为增强应用安全性的重要手段之一。本文将详细介绍如何在 Spring Boot 3.3 中实现基于时间的一次性密码(TOTP)双因素认证,让你的应用安全无忧。
85 5
|
1月前
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
14天前
|
XML Java 数据库连接
SpringBoot集成Flowable:打造强大的工作流管理系统
在企业级应用开发中,工作流管理是一个核心组件,它能够帮助我们定义、执行和管理业务流程。Flowable是一个开源的工作流和业务流程管理(BPM)平台,它提供了强大的工作流引擎和建模工具。结合SpringBoot,我们可以快速构建一个高效、灵活的工作流管理系统。本文将探讨如何将Flowable集成到SpringBoot应用中,并展示其强大的功能。
55 1
|
1月前
|
安全 Java 关系型数据库
springboot整合springsecurity,从数据库中认证
本文介绍了如何在SpringBoot应用中整合Spring Security,并从数据库中进行用户认证的完整步骤,包括依赖配置、数据库表创建、用户实体和仓库接口、用户详情服务类、安全配置类、控制器类以及数据库初始化器的实现。
108 3
springboot整合springsecurity,从数据库中认证
|
23天前
|
JSON Java API
springboot集成ElasticSearch使用completion实现补全功能
springboot集成ElasticSearch使用completion实现补全功能
24 1
|
29天前
|
网络协议 物联网 网络性能优化
物联网协议比较 MQTT CoAP RESTful/HTTP XMPP
【10月更文挑战第18天】本文介绍了物联网领域中四种主要的通信协议:MQTT、CoAP、RESTful/HTTP和XMPP,分别从其特点、应用场景及优缺点进行了详细对比,并提供了简单的示例代码。适合开发者根据具体需求选择合适的协议。
51 5
|
1月前
|
人工智能 JavaScript 网络安全
ToB项目身份认证AD集成(三完):利用ldap.js实现与windows AD对接实现用户搜索、认证、密码修改等功能 - 以及针对中文转义问题的补丁方法
本文详细介绍了如何使用 `ldapjs` 库在 Node.js 中实现与 Windows AD 的交互,包括用户搜索、身份验证、密码修改和重置等功能。通过创建 `LdapService` 类,提供了与 AD 服务器通信的完整解决方案,同时解决了中文字段在 LDAP 操作中被转义的问题。
|
14天前
|
XML 存储 Java
SpringBoot集成Flowable:构建强大的工作流引擎
在企业级应用开发中,工作流管理是核心功能之一。Flowable是一个开源的工作流引擎,它提供了BPMN 2.0规范的实现,并且与SpringBoot框架完美集成。本文将探讨如何使用SpringBoot和Flowable构建一个强大的工作流引擎,并分享一些实践技巧。
39 0
|
1月前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
103 1
|
1月前
|
存储 数据可视化 JavaScript
可视化集成API接口请求+变量绑定+源码输出
可视化集成API接口请求+变量绑定+源码输出
47 4
下一篇
无影云桌面