[JAVA][新项目建设奇奇怪怪的问题]Nacos密码加密

102 阅读1分钟

背景:

基于磐基云平台的订阅的Nacos组件资源:

  • 安全合规要求所有应用配置文件中密码加密处理
  • 本文整改实现nacos密码加密

问题:

整改加密合规, nacos的密码是获得其他配置的前置入口

解决:

遇事不决, 类加载器

总之

  1. 新建包路径 package com.alibaba.cloud.nacos

  2. 抄一份人家源码的NacosDiscoveryProperties.java和NacosConfigProperties.java (可能不同版本不一样但无伤大雅以实际使用的为准)

  3. 改点逻辑, 重写setPassword的方法, 其中加密的密文密钥通过云平台配在启动脚本里还是怎么样就随意了

public void setPassword(String password) {
    if (password.length() > 64) {
        //又不是不能用: 原始密码短 , 加密后长 , 猫好
        this.password = decrypt(password);
    } else {
        this.password = password;
    }
}

4. 保证自己搞的NacosDiscoveryProperties.java和NacosConfigProperties.java 所在的module, 在Application项目的module间依赖关系(pom)中, 最优先被引用(即启动时会被类加载器优先加载);

比如

image.png image.png