小程序开发定制【中间件-keycloak】第一次改开源中间件keycloak总个结

前言

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

总的来说,就是不要怂
多学习,努力干。。。。

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发