### CAS Restful接口调用详解 #### 一、CAS简介 CAS(Central Authentication Service)是一种开源的单点登录协议和服务实现。它旨在减轻单一Web应用的登录流程,并为多个服务提供一个集中式的认证机制。CAS支持多种认证协议,包括但不限于HTTP Basic、HTTP Form-Based、OAuth等。本文将重点介绍CAS如何通过RESTful接口来实现票据的获取与验证过程。 #### 二、环境搭建 为了使用CAS提供的RESTful接口功能,首先需要在项目中引入相关的依赖。在CAS服务端的代码中,即`cas-server-webapp-support`模块下的`pom.xml`文件中添加以下依赖: ```xml org.jasig.cas cas-server-support-rest ${project.version} ``` 这里的`${project.version}`应当替换为你所使用的CAS版本号。添加完依赖后,需要重新构建项目或运行Maven命令以确保依赖被正确加载。 #### 三、启动CAS服务 完成依赖添加后,接下来需要启动CAS服务端。可以通过执行相应的脚本或者命令来启动服务。启动成功后,即可通过网络工具进行RESTful接口的调用测试。 #### 四、获取TGT(Ticket-Granting Ticket) TGT是CAS系统中的一个重要概念,用于后续的服务票证(Service Ticket,简称ST)的获取。获取TGT的过程通常分为以下几个步骤: 1. **使用Postman插件**:推荐使用Google Chrome浏览器的Postman插件进行RESTful API的调用测试。 2. **发起请求**:使用POST方法向CAS服务器发起请求,请求URL如下: ``` http://localhost:8081/cas/v1/tickets ``` 请求体参数需要包含: - `username`:用户名 - `password`:密码 - `service`:服务名称或URL 示例请求体: ``` username=cas&password=cas&service=http://localhost:8080/demo ``` 3. **设置请求头**:Content-Type需要设置为`application/x-www-form-urlencoded`。 4. **解析响应**:成功响应会返回TGT信息,例如: ``` {"ticket":"TGT-1-Uxi0hyRmMcyUDmKuPOcriBs1WlW3UMGH9t9JVaL9EZ1nxka91S-cas01.example.org"} ``` #### 五、获取ST 获得TGT后,可以进一步获取ST,用于验证用户身份并访问受保护的服务资源。获取ST的过程如下: 1. **发起GET请求**:向CAS服务器发送GET请求,请求URL如下: ``` http://localhost:8081/cas/v1/tickets/{TGT} ``` 其中`{TGT}`需要替换为上一步骤中获得的TGT值。 2. **设置请求参数**:请求URL中需要包含服务名或URL作为查询参数,示例: ``` http://localhost:8081/cas/v1/tickets/TGT-1-Uxi0hyRmMcyUDmKuPOcriBs1WlW3UMGH9t9JVaL9EZ1nxka91S-cas01.example.org?service=http://localhost:8080/demo ``` 3. **解析响应**:成功响应会返回ST信息,例如: ``` {"ticket":"ST-6-Uvw5gIEOqFd1peDTu7qG-cas01.example.org"} ``` #### 六、验证ST 最后一步是对获取到的ST进行验证,验证成功后即可确认用户的身份,并允许其访问受保护的资源。验证ST的过程如下: 1. **发起GET请求**:向CAS服务器发送GET请求,请求URL如下: ``` http://localhost:8081/cas/serviceValidate?ticket={ST}&service=http://localhost:8080/demo ``` 其中`{ST}`需要替换为上一步骤中获得的ST值。 2. **设置请求头**:对于此步骤,Content-Type可以随意填写,因为它不会影响验证过程。 3. **解析响应**:成功响应会包含用户身份验证的相关信息,示例: ``` <cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'> <cas:authenticationSuccess> <cas:user>cascas:user> <cas:proxyGrantingTicket>PGT-1-...cas:proxyGrantingTicket> cas:authenticationSuccess> cas:serviceResponse> ``` 以上便是通过RESTful接口实现CAS票据获取与验证的基本流程。在整个过程中,需要注意的是请求URL、请求参数以及请求头的正确设置,这些细节将直接影响到最终的结果。
2025-04-02 10:20:03 36KB CAS REST
1
在大型强子对撞机发现质量约为125 GeV的希格斯玻色子之后,从理论和实验角度都进行了许多研究,以寻找比125 GeV轻的新型希格斯玻色子。 我们通过将次轻量级的希格斯玻色子h2限制为在次最小的超对称标准模型中,探索了限制更轻的中性标量希格斯玻色子h1和较轻的伪标量希格斯玻色子a1的可能性。 应用现象学约束和实验测量的约束后的LHC。 从LHC数据在双光子衰变通道中寻找较轻的希格斯玻色子的最新结果尚未完全排除此类较轻的粒子。 我们的结果表明,如果通过实验合作和更多数据进行搜索,则对于大型强子对撞机中较轻的标量希格斯玻色子,可以获得对次最小超对称标准模型的一些新约束。 还讨论了发现这种较轻的中性标量或伪标量粒子的其他有趣衰减通道的潜力。
2024-02-28 12:58:37 1.22MB Open Access
1
远方光谱仪cas-200软件
2023-11-18 18:21:59 9.73MB
1
cas php 客户端
2023-10-14 09:01:52 87KB cas php
1
单点登录(SSO)和中心认证服务(CAS)
2023-07-17 17:02:28 199KB 单点登录 中心认证服务
1
本篇文章主要介绍了详解Spring Boot 使用Spring security 集成CAS,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
2023-04-10 13:14:04 71KB spring security cas spring
1
通过 CAS 插件进行 Shibboleth IdP 外部身份验证 可以在找到 Shibboleth IdP v3.X 插件 这是一个 Shibboleth IDP 外部身份验证插件,它将身份验证委托给中央身份验证服务器。 与 Shibboleth 提供的普通REMOTE_USER标头解决方案相比,使用此组件的最大优势是能够利用完整的本地 CAS 协议功能,例如renew和gateway 。 该插件由 2 个组件组成: 委托给 CAS 的自定义 Shibboleth LoginHandler ,支持强制和被动身份验证 Shibboleth IDP Servlet 作为 CAS 和 IDP 之间的桥梁 在 CASified 资源和 IdP 之间共享状态的策略 这个项目提供了一个自定义的 Shibboleth LoginHandler 和 servlet。 处理程序准备对 CAS 的重定向
2023-03-26 21:57:26 77KB Java
1
cas Node.js的中央身份验证服务(CAS)客户端 该模块处理CAS身份验证(支持代理和扩展属性),并且如果需要,还可以透明地重定向网页。 对于希望手动处理事务的人员,票证验证步骤可作为其自身功能使用。 Express / Connect也支持单点注销。 要手动启动登录过程,请将您的用户发送至: https://cas_base_url/login?service=url_to_handle_ticket_validation 。 在下面的滑铁卢大学示例中,该URL为: https://cas.uwaterloo.ca/cas/login?service='my_service' : https://cas.uwaterloo.ca/cas/login?service='my_service' 。 或者,如果您正在为网页使用标准的HTTP req / res对象,则可以使用提供
2023-03-08 22:22:26 16KB JavaScript
1
BACnet服务器MSTP示例C ++ 使用用C ++编写的最小BACnet MSTP服务器示例。 有关功能齐全的BACnet服务器示例,请参见项目。 发布 可以从“页面下载此示例的内部版本。 安装 在“页面上下载最新的发行zip文件。 用法 可以使用命令行参数配置此BACnet MSTP服务器的串行端口,波特率和MAC地址: BACnetServerMSTPExampleCPP [serial port] [baud rate] [mac address] BACnetServerMSTPExampleCPP COM5 9600 1 BACnetServerMSTPExampleCPP ttyS6 19200 25 设备树: 设备:389999(设备Rainbow) 模拟值:2(AnalogValue Diamond) 建造 该项目包含一个项目。 该项目还在每次提交时使用自动构建
2023-03-02 20:17:50 22KB bacnet bacnet-server bacnet-mstp C++
1
文章目录SQL之CASE WHEN用法详解场景1:有分数score,score=60返回及格,score>=80返回优秀场景2:现老师要统计班中,有多少男同学,多少女同学,并统计男同学中有几人及格,女同学中有几人及格,要求用一个SQL输出结果。场景3:经典行转列,并配合聚合函数做统计,现要求统计各个城市,总共使用了多少水耗、电耗、热耗,使用一条SQL语句输出结果场景4:CASE WHEN中使用子查询,根据城市用电量多少,计算用电成本。假设电能耗单价分为三档,根据不同的能耗值,使用相应价格计算成本。场景5:结合max聚合函数一道真实的面试题 SQL之CASE WHEN用法详解 简单CASE WH
2023-01-28 12:03:58 266KB AS c cas
1