【中间件-keycloak】第一次改开源中间件keycloak总个结

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 【中间件-keycloak】第一次改开源中间件keycloak总个结

前言

今年5月入职一家公司,主要负责devops平台建设及开发,在之前的平台中,对接了公司统一用户中心,选择了keycloak开源中间件做为认证中心,各个子系统都通过SSO实现单点等,部分系统还适配OIDC进行身份认证

原有系统交互流程中,某两个系统单点实现方式是通过keycloak SPI机制实现的,可能OIDC某些东西没有处理好【实在看不懂源码】,后改为通过模拟keycloak原有登录来实现单点问题,统一存储token

源码

keycloak是指定版本在源码基础上进行改变的,有个好消息:至少源码还在,上次更新差不多快2年啦,真的是个忧伤的故事

拿到源码的那一刻,瞬间懵逼,无论如何各种编译通不过,项目不能启动,各种论坛百度进行搜索源码

QQ搜索keycloak相关群,一共就两个,其中一个还是一个广告群:

image.png

心里顿时拔凉拔凉的,大家以后选择中间件还是不要选择国内用得比较少的,不然出了问题搞不懂呀

接下来问题得解决呀,只有硬着头上呀,先大概看了下keycloak每个模块具体是干啥,大概的代码流转是如何的。

高潮

百度、谷歌各种搜索,总算是代码通过了编译,找到相应的启动类,配置好JDBC进行编译启动

刺激的事情来啦:mvn install -Pdistribution 执行完这段代码后,现有的测试环境数据表结构全部进行了初始化,是的,测试环境直接崩溃啦

高潮还在继续:这下完犊子啦,看了测试环境的mysql,binlog日志也没开启,意味着数据找不回来,咋办呢,还能咋办呢,先把测试环境搞好吧

通过两天的奋斗,中午午觉不敢睡,总算把测试环境恢复啦,这也算对keycloak进一步的熟悉啦。

第一件事情就是把测试环境能够正常运行的数据进行备份,一次性备份到两个库,数据丢了真的好可伶。

完成

通过前面的跌跌撞撞,也算对keycloak有了一些了解,然后通过idea的debugger一步步的调试,确定代码流程,最终确定模拟改造方案

源代码改造完成后接下来又是一个大工程,把现有改过的代码部署到测试环境,之前的脚本也不能运行,然后一步步改脚本,这样的脚本还有好几个

image.png

接下来就是通过k8s在测试环境进行启动,然后在业务系统中修改keycloak的接口请求地址,业务系统继续进行修改,这里每个业务不一样就不细说啦

最终,最终,通过两周的努力,算是完成这个功能啦,坐等上线。

总结

说起源码改造可能很多小伙伴比较怂,我刚开始也是,但是无知者无畏,心态要好,都是Java写的,怕个啥,我也是学Java的,哈哈

keycloak源码中用到了很多设计模式,所以代码阅读可调试起来有些困难,同一个接口都有很多个实现类

image.png

尽可能调试过的地方都增加上自己能看懂的注释,方便自己下次调试,或者其他开发者阅读代码

因为无知,所以在改动任何很细节的方面,都是先把原因的数据进行备份,如数据库、配置文件、代码分支等等,方便出了问题可以快速的回滚

上生产要做好上线流程演练,尽可能的多思考,像类似于这种认证中间件,肯定很多系统都有依赖,要对业务有更多的了解和把控

通过这次改造最终解决了他们反馈了很久的问题,内心成就感爆棚

相关文章
|
2月前
|
消息中间件 存储 NoSQL
国产化中间件正在侵蚀开源中间件
国产化中间件正在侵蚀开源中间件
378 6
|
5月前
|
消息中间件 存储 NoSQL
阿里开源中间件一览
阿里开源中间件一览
356 2
|
缓存 监控 NoSQL
一个.Net Core开源缓存中间件,让你更加简单、方便使用缓存
一个.Net Core开源缓存中间件,让你更加简单、方便使用缓存
199 0
|
消息中间件 中间件 Kafka
限时开源!阿里内部消息中间件合集:MQ+Kafka+体系图+笔记
近好多小伙伴说在准备金三银四的面试突击了,但是遇到消息中间件不知道该怎么学了,问我有没有成体系的消息中间件的学习方式。 额,有点不知所措,于是乎小编就想着做一次消息中间件的专题,归类整理了一些纯手绘知识体系图、面试以及相关的学习笔记。
235 1
|
运维 监控 安全
开源中间件的难度
开源中间件的难度
148 0
|
消息中间件 负载均衡 物联网
在Linux服务器上安装EMQX平台:构建高性能的开源物联网消息中间件
EMQX是一个开源的物联网消息中间件平台,提供高性能、高可用性的MQTT和CoAP协议支持,适用于大规模物联网应用场景。本文将详细介绍在Linux服务器上安装EMQ X平台的步骤,帮助开发者快速搭建功能强大的物联网消息中间件。
3487 1
|
canal 消息中间件 JSON
实战!Spring Boot 整合 阿里开源中间件 Canal 实现数据增量同步!
实战!Spring Boot 整合 阿里开源中间件 Canal 实现数据增量同步!
2057 8
|
Arthas 运维 容灾
阿里云中间件开源往事(2)
阿里云中间件开源往事
354 12
|
存储 Kubernetes 网络协议
【分布式技术专题】「OSS中间件系列」从0到1的介绍一下开源对象存储MinIO技术架构
【分布式技术专题】「OSS中间件系列」从0到1的介绍一下开源对象存储MinIO技术架构
714 6
【分布式技术专题】「OSS中间件系列」从0到1的介绍一下开源对象存储MinIO技术架构
|
消息中间件 Dubbo Java
阿里云中间件开源往事(1)
阿里云中间件开源往事
228 4
下一篇
无影云桌面