CAS5.3使用JPA实现动态注册服务
cas同时支持cas协议和OAuth2协议,官方默认是通过扫描json文件的形式注册客户端服务,但是此种方式需要重启服务才能生效,此次我们将使用JPA来完美实现动态注册服务,如果不知道cas如何部署,可以擦看之前的文章
cas-client基于CAS协议客户端搭建-CSDN博客
cas-server5.3自定义密码校验规则_cas-server 自定义加密验证-CSDN博客
CAS服务端的搭建并配置OAtuh2.0协议_cas oauth2.0-CSDN博客
添加pom依赖
<dependency><groupId>org.apereo.cas</groupId><artifactId>cas-server-support-jpa-service-registry</artifactId><version>${cas.version}</version>
</dependency>
<dependency><groupId>org.apereo.cas</groupId><artifactId>cas-server-core-services-api</artifactId><version>${cas.version}</version>
</dependency>
<dependency><groupId>org.apereo.cas</groupId><artifactId>cas-server-core-authentication-attributes</artifactId><version>${cas.version}</version>
</dependency>
添加配置
#数据库用户名
cas.serviceRegistry.jpa.user=root
#数据库密码
cas.serviceRegistry.jpa.password=root
#mysql驱动
cas.serviceRegistry.jpa.driverClass=com.mysql.cj.jdbc.Driver
#数据库连接
cas.serviceRegistry.jpa.url=jdbc:mysql://localhost:3306/db_user?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
cas.serviceRegistry.jpa.dialect=org.hibernate.dialect.MySQL5Dialect
#连接池配置
cas.serviceRegistry.jpa.pool.suspension=false
cas.serviceRegistry.jpa.pool.minSize=6
cas.serviceRegistry.jpa.pool.maxSize=18
cas.serviceRegistry.jpa.pool.maxWait=2000
cas.serviceRegistry.jpa.pool.timeoutMillis=1000
#默认为create-drop,表示每次启动服务都会清除你之前注册的cas服务
cas.serviceRegistry.jpa.ddlAuto=update
第一次启动需要将cas.serviceRegistry.jpa.ddlAuto设置为create-drop,启动后会创建如下表结构

编写逻辑
@RestController
@RequestMapping
public class RegistrationServiceController {@Autowired@Qualifier("servicesManager")private ServicesManager servicesManager;@Autowiredprivate RegexregisteredserviceService regexregisteredserviceService;@GetMapping("/addOAuth")public void addOAuthClient(@RequestParam("serviceId") String serviceId,@RequestParam("clientId") String clientId,@RequestParam("clientSecret") String clientSecret,@RequestParam("name")String name) {OAuthRegisteredService service = new OAuthRegisteredService();ReturnAllAttributeReleasePolicy re = new ReturnAllAttributeReleasePolicy();service.setClientId(clientId);service.setClientSecret(clientSecret);service.setServiceId(serviceId);service.setAttributeReleasePolicy(re);service.setName(name);servicesManager.save(service);// 执行load让他生效servicesManager.load();}@GetMapping("/addCas")public void addOAuthClient(@RequestParam("serviceId") String serviceId,@RequestParam("name")String name) {RegexRegisteredService service = new RegexRegisteredService();ReturnAllAttributeReleasePolicy re = new ReturnAllAttributeReleasePolicy();service.setServiceId(serviceId);service.setAttributeReleasePolicy(re);service.setName(name);servicesManager.save(service);// 执行load让他生效servicesManager.load();}@GetMapping("/deleteService")public void deleteServiceClient(@RequestParam("id") String id) {regexregisteredserviceService.removeById(id);// 执行load让他生效servicesManager.load();}
可以看到这个controller中最主要的就是ServicesManager 这个Bean,可以看一下它的源码,这里提供了对于服务操作的实现,这里我们主要用到的是load方法,其作用是当我们增加或删除一个服务后执行load()方法会使我们的修改生效,可以理解为是一个刷新的操作
其中这不分的参数,可以参考 resources.services下的json文件的参数来添加,
注意:添加cas服务使用到的是RegexRegisteredService,添加OAuth2服务使用到的是OAuthRegisteredService,不然数据库里的expression_type是区分不出来类型的


相关文章:
CAS5.3使用JPA实现动态注册服务
cas同时支持cas协议和OAuth2协议,官方默认是通过扫描json文件的形式注册客户端服务,但是此种方式需要重启服务才能生效,此次我们将使用JPA来完美实现动态注册服务,如果不知道cas如何部署,可以擦看之前的文章 cas-client基于CAS协议客户端搭建-CSDN博客 cas-server5.3自定义密…...
unity ui界面优化
优化一个比较复杂的界面,里面有多个rt和组件。 在初次打开这个界面的时候会发生1s多的卡顿,还是非常严重的。 分析 通过profiler分析 1.打开界面时卡顿。 分析:除了update和dotween相关逻辑,主要在于打开时的lua function调用…...
mysql-MVCC
一、基础概念 1. MVCC的含义 MVCC (Multiversion Concurrency Control),即多版本并发控制技术,它是通过读取某个时间点的快照数据, 来降低并发事务冲突而引起的锁等待, 从而提高并发性能的一种机制. MVCC 的实现,是通过保存数据…...
Sqli-labs靶场第9关详解[Sqli-labs-less-9]
Sqli-labs-Less-9 前言: SQL注入的三个条件: ①参数可控;(从参数输入就知道参数可控) ②参数过滤不彻底导致恶意代码被执行;(需要在测试过程中判断) ③参数带入数据库执行。&#…...
第3.5章:StarRocks数据导入——Broker Load
注:本篇文章阐述的是StarRocks-3.2版本的Broker Load导入机制 一、概述 Broker Load导入方式支持从HDFS类的外部存储系统(例如:HDFS、阿里OSS、腾讯COS、华为云OBS等),支持Parquet、ORC、CSV、及 JSON 四种文件格式&a…...
Linux之ACL权限chmod命令
一. chmod命令 chmod命令来自英文词组change mode的缩写,其功能是改变文件或目录权限的命令。默认只有文件的所有者和管理员可以设置文件权限,普通用户只能管理自己文件的权限属性。 设置权限时可以使用数字法,亦可使用字母表达式࿰…...
HBuilderX的特点
轻巧 仅10余M的绿色发行包(不含插件)极速 不管是启动速度、大文档打开速度、编码提示,都极速响应 C的架构性能远超Java或Electron架构vue开发强化 HBuilderX对vue做了大量优化投入,开发体验远超其他开发工具 详见小程序支持 国外开发工具没有对中国的小程…...
CrossOver虚拟机软件2024有哪些功能?最新版本支持哪些游戏?
CrossOver由codewaver公司开发的类虚拟机软件,目的是使linux和Mac OS X操作系统和window系统兼容。CrossOver不像Parallels或VMware的模拟器,而是实实在在Mac OS X系统上运行的一个软件。CrossOvers能够直接在Mac上运行Windows软件与游戏,而不…...
Android LinearLayout 如何让子元素靠下居中对齐 center bottom
Android LinearLayout 如何让子元素靠下居中对齐 center bottom 首先你需要知道两个知识点: android:layout_gravity 指定的是当前元素在父元素中的位置android:gravity 指定的是当前元素子元素的排布位置 比如: 有这么一个布局,我需要让…...
物体检测-系列教程16:YOLOV5 源码解析6(马赛克数据增强函数load_mosaic)
😎😎😎物体检测-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 点我下载源码 9、load_mosaic函数 Mosaic(马赛克)数据增强:将四张不…...
星河做市基金会全球DAO社区启动,为数字货币市场注入新活力
2024年的数字货币市场即将迎来一次重要的历史性时刻 — 比特币减半,这四年一次的事件将成为全球数字资产市场的焦点,预示着新一轮的牛市浪潮即将到来。在这个关键时刻,星河做市基金会展现出其作为区块链行业领先市值管理公司的独特魅力。 GA…...
QT Widget自定义菜单
此文以设置QListWidget的自定义菜单为例,其他继承于QWidget的类也都可以按类似的方法去实现。 1、ui文件设置contextMenuPolicy属性为CustomContextMenu 2、添加槽函数 /*** brief onCustomContextMenuRequested 右键弹出菜单* param pos 右键的坐标*/void onCusto…...
UnityWebGL 设置全屏
这是Unity导出Web默认打开的页面尺寸 修改后效果 修改 index.html 文件 1.div元素的id属性值为"unity-container",宽度和高度都设置为100%,意味着该div元素将占据整个父容器的空间。canvas元素的id属性值为"unity-canvas"ÿ…...
100224. 分割数组
说在前面 🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。 题目描述 给你一个长度为 偶数 的整数数组 nums 。你需要将这个数组分割成 nums1 和 nums2 两部分&am…...
WSL2配置Linux、Docker、VS Code、zsh、oh my zsh(附Docker开机自启设置)
0. 写在前面 本篇笔记来自于UP主麦兜搞IT的合集视频Windows10开发环境搭建中的部分内容 1. 安装WSL2 按照微软官方文档进行操作,当然也可以直接wsl --install 也可以按照 旧版手动安装的步骤 来进行操作 选择安装的是Ubuntu 20.04 LTS 注:WSL默认安装…...
深度学习基础(四)医疗影像分析实战
之前的章节我们初步介绍了卷积神经网络(CNN)和循环神经网络(RNN): 深度学习基础(三)循环神经网络(RNN)-CSDN博客文章浏览阅读1.2k次,点赞17次,收…...
ChatGPT调教指南 | 咒语指南 | Prompts提示词教程(一)
在我们开始探索人工智能的世界时,了解如何与之有效沉浸交流是至关重要的。想象一下,你手中有一把钥匙,可以解锁与OpenAI的GPT模型沟通的无限可能。这把钥匙就是——正确的提示词(prompts)。无论你是AI领域的新手,还是希望优化与大型语言模型交流的老手,掌握如何精确使用…...
LeetCode | 两数相加 C语言
Problem: 2. 两数相加 文章目录 思路解题方法Code一些感想 思路 主要是一一相加和逆序的方式存储 先说逆序储存,看下图 我们先声明出指针p和指针q,还有指针head(主要用于return上而已),然后进行一系列操作,…...
【Spring MVC】处理器映射器:AbstractHandlerMethodMapping源码分析
目录 一、继承体系 二、HandlerMapping 三、AbstractHandlerMapping 四、AbstractHandlerMethodMapping 4.1 成员属性 4.1.1 MappingRegistry内部类 4.2 AbstractHandlerMethodMapping的初始化 4.3 getHandlerInternal()方法:根据当前的请求url,…...
网络编程知识整理
目录 1.1 引言 1.2 分层 1.3 TCP/IP的分层 1.4 互联网的地址 1.5 域名服务 1.6 封装 1.7 分用 1.8 端口号 1.1 引言 很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但 T C P / I P协议族允许它们互相进行通信。这一点很让人感…...
新手别怕!用Volatility 2.6分析WinXP内存镜像,一步步揪出隐藏的svchost木马
从零开始的内存取证实战:用Volatility 2.6解剖WinXP内存中的svchost木马 当你第一次接触内存取证时,面对黑底白字的命令行界面和陌生的术语,难免会感到无从下手。但别担心,今天我们就用一个真实的WinXP SP2内存镜像案例࿰…...
别再纠结选哪个了!实测对比PP-OCRv4、v3、读光等主流开源OCR模型(附完整代码与数据集)
主流开源OCR模型实战评测:从技术指标到业务落地的全维度解析 每次打开GitHub搜索OCR项目时,总会被琳琅满目的模型搞得眼花缭乱——PP-OCR系列、读光、DBNet...每个项目主页都宣称自己"精度最高"、"速度最快"。但当你真正把这些模型部…...
pngquant终极错误排查手册:10个常见问题与快速解决方案
pngquant终极错误排查手册:10个常见问题与快速解决方案 【免费下载链接】pngquant Lossy PNG compressor — pngquant command based on libimagequant library 项目地址: https://gitcode.com/gh_mirrors/pn/pngquant pngquant作为一款高效的PNG有损压缩工具…...
别再只盯着data://协议了!详解Nginx日志文件包含漏洞的另类利用与防御
从日志污染到权限沦陷:Nginx文件包含漏洞的攻防全景解析 当Web服务器的日志文件成为攻击者的跳板,一场关于权限与防御的暗战便悄然展开。Nginx作为现代互联网基础设施的核心组件,其日志机制在记录访问轨迹的同时,也可能成为系统安…...
Vue3+Vant4移动端架构设计:现代化移动应用工程实践
Vue3Vant4移动端架构设计:现代化移动应用工程实践 【免费下载链接】vue3-vant4-mobile 👋👋👋 基于Vue3.2、vite3、vant4、pinia2、Typescript、windicss 等主流技术开发,集成 Dark Mode(暗黑)模式和系统主题色&#x…...
谷歌威胁情报报告:威胁行为者已将AI直接融入实际网络攻击流程
谷歌威胁情报小组(GTIG)最新报告警示,威胁行为者不再局限于对人工智能的简单试验,而是开始将生成式AI直接整合到真实攻击工作流程中。报告特别聚焦对谷歌自家Gemini模型的滥用与针对性攻击,表明生成式AI系统正日益成为…...
MySQL开发者必看:金仓数据库兼容性迁移避坑指南(含外键处理技巧)
MySQL开发者必看:金仓数据库兼容性迁移避坑指南(含外键处理技巧) 当企业级应用需要从MySQL迁移到金仓数据库时,开发者往往会面临一系列兼容性挑战。作为国产数据库的代表,金仓数据库虽然提供了MySQL兼容模式࿰…...
老旧设备系统升级技术解析:4步实战指南让旧Mac焕发新生
老旧设备系统升级技术解析:4步实战指南让旧Mac焕发新生 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 老旧Mac设备升级macOS系统是许多用户面临的技术难题&am…...
KinhDown:突破百度网盘限速的效率革命
KinhDown:突破百度网盘限速的效率革命 【免费下载链接】baidupcs-web 项目地址: https://gitcode.com/gh_mirrors/ba/baidupcs-web 在数字化时代,云存储已成为我们工作与生活中不可或缺的一部分。然而,百度网盘对免费用户实施的严格限…...
昇腾NPU部署Qwen3-30B-A3B避坑指南:从驱动检查到vLLM参数调优全解析
昇腾NPU部署Qwen3-30B-A3B实战手册:深度调优与异常处理全景指南 当你在深夜的服务器机房,面对闪烁的NPU状态灯和一堆报错日志时,是否曾希望有一份真正懂行的技术手册?本文将带你深入昇腾NPU部署Qwen3-30B-A3B大模型的每一个技术细…...
