我们经常说密码明文、KEY不要写在配置文件中,以及不要上传到GIT,但是有时候可能真的一不小心就写了,一不小心就传了。
已知有一个很成熟的库 jasypt-spring-boot-starter 可以实现帮我们自动解密配置文件中的加密配置。 但是它好像不支持 SM4 算法,也没办法接入我们自己的加解密方案,特别是有专用加解密设备、密码机的场景。
在此提供一个 EnvironmentPostProcessor 的实现,用来稍微改改代码,就能接入自有的一套加解密方案。
下面是自己用的一套基于 SM4 解密的代码:
1 | package cn.shitcode.framework.crypto; |
除了增加上面的 Java 文件外,还需要增加一个配置,需要在 resources/META-INF/spring.factories 配置文件中增加如下配置:
1 | # EnvironmentPostProcessor 实现类注册,用于 SM4 配置文件解密 |
只有增加如上配置,才能正式生效。
以及 Java 代码中为什么不用 Slf4j 这类日志框架打印日志?这是因为此时 Slf4j 日志框架还未初始化,即使用了,也无法在控制台和日志文件中打印日志,因此只能使用常规的 System.out 来输出信息