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文章,请看我以往的文章。

目录
相关文章
|
14天前
|
Java 关系型数据库 MySQL
SpringBoot 通过集成 Flink CDC 来实时追踪 MySql 数据变动
通过详细的步骤和示例代码,您可以在 SpringBoot 项目中成功集成 Flink CDC,并实时追踪 MySQL 数据库的变动。
119 43
|
16天前
|
监控 前端开发 Java
SpringBoot集成Tomcat、DispatcherServlet
通过这些配置,您可以充分利用 Spring Boot 内置的功能,快速构建和优化您的 Web 应用。
48 21
|
24天前
|
Java 应用服务中间件 Spring
SpringBoot 响应请求是串行还是并行?
Spring Boot 在默认情况下通过 Servlet 容器的线程池实现并行处理 HTTP 请求。通过适当的线程池配置,可以进一步优化并发性能。此外,Spring Boot 提供了异步处理机制(如使用 `@Async` 注解)和反应式编程模型(Spring WebFlux),使得应用能够处理更高的并发负载。在具体项目中,可以根据需求选择合适的处理模型,以充分利用 Spring Boot 的并发处理能力。
55 21
|
1月前
|
监控 Java Nacos
使用Spring Boot集成Nacos
通过上述步骤,Spring Boot应用可以成功集成Nacos,利用Nacos的服务发现和配置管理功能来提升微服务架构的灵活性和可维护性。通过这种集成,开发者可以更高效地管理和部署微服务。
208 17
|
1月前
|
XML JavaScript Java
SpringBoot集成Shiro权限+Jwt认证
本文主要描述如何快速基于SpringBoot 2.5.X版本集成Shiro+JWT框架,让大家快速实现无状态登陆和接口权限认证主体框架,具体业务细节未实现,大家按照实际项目补充。
87 11
|
1月前
|
缓存 安全 Java
Spring Boot 3 集成 Spring Security + JWT
本文详细介绍了如何使用Spring Boot 3和Spring Security集成JWT,实现前后端分离的安全认证概述了从入门到引入数据库,再到使用JWT的完整流程。列举了项目中用到的关键依赖,如MyBatis-Plus、Hutool等。简要提及了系统配置表、部门表、字典表等表结构。使用Hutool-jwt工具类进行JWT校验。配置忽略路径、禁用CSRF、添加JWT校验过滤器等。实现登录接口,返回token等信息。
369 12
|
1月前
|
存储 安全 Java
Spring Boot 3 集成Spring AOP实现系统日志记录
本文介绍了如何在Spring Boot 3中集成Spring AOP实现系统日志记录功能。通过定义`SysLog`注解和配置相应的AOP切面,可以在方法执行前后自动记录日志信息,包括操作的开始时间、结束时间、请求参数、返回结果、异常信息等,并将这些信息保存到数据库中。此外,还使用了`ThreadLocal`变量来存储每个线程独立的日志数据,确保线程安全。文中还展示了项目实战中的部分代码片段,以及基于Spring Boot 3 + Vue 3构建的快速开发框架的简介与内置功能列表。此框架结合了当前主流技术栈,提供了用户管理、权限控制、接口文档自动生成等多项实用特性。
84 8
|
2月前
|
XML Java API
Spring Boot集成MinIO
本文介绍了如何在Spring Boot项目中集成MinIO,一个高性能的分布式对象存储服务。主要步骤包括:引入MinIO依赖、配置MinIO属性、创建MinIO配置类和服务类、使用服务类实现文件上传和下载功能,以及运行应用进行测试。通过这些步骤,可以轻松地在项目中使用MinIO的对象存储功能。
149 5
|
3月前
|
消息中间件 Java Kafka
什么是Apache Kafka?如何将其与Spring Boot集成?
什么是Apache Kafka?如何将其与Spring Boot集成?
110 5
|
3月前
|
JSON 安全 算法
Spring Boot 应用如何实现 JWT 认证?
Spring Boot 应用如何实现 JWT 认证?
110 8

热门文章

最新文章