mybatis-plus mpw 基于nacos-配置中心失效问题解决。
先谈谈个人理解:
配置中心下的配置加密做不做其实意义不大。
1、首先nacos console 内网化,受到攻击概率很低
2、加密后,各namespace 下的配置信息查看不友好。增加开发成本
3、对称加密既然组员都有密码了,还谈何来的秘密。
4、有人说用于生产环境会好,真正的生产环境,肯定是各种规矩,各种路由,各种监控,各种安全认证,各种blablabla,db多备,风控,多方协调,不是单单的加密问题就能解决的。
扯远了,说说正事,
问题追踪:
mybatis-plus 提供的解密yml配置用到的类:
在nacos中不起作用的原因是:
safety在启动时,优先执行jar包及系统参数的Properties解密,但所有的配置中心里配置数据拿不到造成了解密寂寞 。容易造成 dataType url 为null ,mpw:xxxxxx识别不到
解决思路:
在nacos 拿到配置数据后执行。
PropertySourceBootstrapConfiguration 类。该类基于是基于SPI机制引入的
原本是只有nacos 相关解析
在解析完毕后 对于naco 封好的 bootstrapProperits 及其他properites 进行混合。
最后在执行 insertPropertySource 将所有配置融合进 ConfigurableEnvironment 中
。最终让系统生效
nacos 加载细节这块是作者之前失败之路,aop,替换原有 environment中变量 发现都不行。可能因为 prop 有cache。下述nacos拉取配置中心数据进行 properties 混合的实现
上代码
第一步:写代码
第二步:
填写 spi参数
第三步:
失败的启动
成功的启动
所有加密参数成功解析,启动成功
玩不转的可以留言