当前位置:网站首页>第一次改开源中间件keycloak总个结
第一次改开源中间件keycloak总个结
2022-07-23 01:59:00 【51CTO】
前言
- 今年5月入职一家公司,主要负责devops平台建设及开发,在之前的平台中,对接了公司统一用户中心,选择了keycloak开源中间件做为认证中心,各个子系统都通过SSO实现单点等,部分系统还适配OIDC进行身份认证
- 原有系统交互流程中,某两个系统单点实现方式是通过keycloak SPI机制实现的,可能OIDC某些东西没有处理好【实在看不懂源码】,后改为通过模拟keycloak原有登录来实现单点问题,统一存储token
源码
- keycloak是指定版本在源码基础上进行改变的,有个好消息:至少源码还在,上次更新差不多快2年啦,真的是个忧伤的故事
- 拿到源码的那一刻,瞬间懵逼,无论如何各种编译通不过,项目不能启动,各种论坛百度进行搜索源码
- QQ搜索keycloak相关群,一共就两个,其中一个还是一个广告群:
- 心里顿时拔凉拔凉的,大家以后选择中间件还是不要选择国内用得比较少的,不然出了问题搞不懂呀
- 接下来问题得解决呀,只有硬着头上呀,先大概看了下keycloak每个模块具体是干啥,大概的代码流转是如何的。

高潮
- 百度、谷歌各种搜索,总算是代码通过了编译,找到相应的启动类,配置好JDBC进行编译启动
- 刺激的事情来啦:
mvn install -Pdistribution 执行完这段代码后,现有的测试环境数据表结构全部进行了初始化,是的,测试环境直接崩溃啦 - 高潮还在继续:这下完犊子啦,看了测试环境的mysql,binlog日志也没开启,意味着数据找不回来,咋办呢,还能咋办呢,先把测试环境搞好吧
- 通过两天的奋斗,中午午觉不敢睡,总算把测试环境恢复啦,这也算对keycloak进一步的熟悉啦。
- 第一件事情就是把测试环境能够正常运行的数据进行备份,一次性备份到两个库,数据丢了真的好可伶。
完成
- 通过前面的跌跌撞撞,也算对keycloak有了一些了解,然后通过idea的debugger一步步的调试,确定代码流程,最终确定模拟改造方案
- 源代码改造完成后接下来又是一个大工程,把现有改过的代码部署到测试环境,之前的脚本也不能运行,然后一步步改脚本,这样的脚本还有好几个
- 接下来就是通过k8s在测试环境进行启动,然后在业务系统中修改keycloak的接口请求地址,业务系统继续进行修改,这里每个业务不一样就不细说啦
- 最终,最终,通过两周的努力,算是完成这个功能啦,坐等上线。

总结
- 说起源码改造可能很多小伙伴比较怂,我刚开始也是,但是无知者无畏,心态要好,都是Java写的,怕个啥,我也是学Java的,哈哈
- keycloak源码中用到了很多设计模式,所以代码阅读可调试起来有些困难,同一个接口都有很多个实现类
- 尽可能调试过的地方都增加上自己能看懂的注释,方便自己下次调试,或者其他开发者阅读代码
- 因为无知,所以在改动任何很细节的方面,都是先把原因的数据进行备份,如数据库、配置文件、代码分支等等,方便出了问题可以快速的回滚
- 上生产要做好上线流程演练,尽可能的多思考,像类似于这种认证中间件,肯定很多系统都有依赖,要对业务有更多的了解和把控
- 通过这次改造最终解决了他们反馈了很久的问题,内心成就感爆棚

总的来说,就是不要怂
多学习,努力干。。。。
边栏推荐
猜你喜欢

TDengine 助力西门子轻量级数字化解决方案 SIMICAS 简化数据处理流程

C语言力扣第39题之组合总和。回溯法与遍历法

判断两个类型是否相同

Tensorflow 2.0深度学习教程

Peptide nucleic acid coupled polypeptide ile Glu Gly Arg PNA (s-2222) | BOC Leu Gly Arg PNA

PNA polypeptide suc ala ala Pro AAA PNA suc ala3 PNA Pyr Phe Leu PNA

2022.7.22 js入门 常用数据类型及其方法

【HLS】流水线仿真之排队函数的调用

wallys/WiFi6 MiniPCIe Module 2T2R2×2.4GHz 2x5GHz MT7915 MT7975

判斷是否為void類型
随机推荐
I want to learn financial management in digging money. Is it safe to open an account?
Q-Vision+Kvaser CAN/CAN FD/LIN总线解决方案
[HLS] Call of queuing function in pipeline simulation
2022.7.22 js入门 常用数据类型及其方法
Wallys/PD-60 802.3AT Input Output802.3AT/AT 85% Efficiency 10/100/1000M GE Surge Protection
Self assignment and abnormal security problems in operator=
VirtualBox NAT network mode configuration
codeforces每日5题(均1500)-第二十三天
1059 Prime Factors
TFW6524完美替代进口PT6524芯片方案简介
Ardunio——ULN2003驱动板和直流电机风扇——控制风扇转速
Q-vision+kvaser can/can fd/lin bus solution
分享两个好玩好看的特效
Can GF futures open an account? Is it safe?
[FPGA tutorial case 36] communication case 6 - development of FFT Fourier transform based on vivado core and detailed explanation of Verilog input timing configuration, which is verified by MATLAB
Verilog语法基础HDL Bits训练 04
selenium.webdriver获取结果转为json格式
BeanSearcher接收数组参数、以及逻辑删除
Canal configuration 01
PNA modified polypeptide BZ Val Gly Arg PNA | BOC Val Leu Gly Arg PNA