spring cloud 使用TextEncryptor 加密数据
org.springframework.security.crypto.encrypt.TextEncryptor 完整类路径
步骤:
1. 使用keytool生产秘匙对,jdk 自带,命令如下:
keytool -genkeypair -alias margokk -keyalg RSA -dname "CN=Web Server,OU=China,O=www.margo.cn,L=Beijing,S=Beijing,C=China" -keypass biteme -keystore config-service.jks -storepass myPas
2. 把产生的 config-service.jks 文件放在项目路径下:
由于下面单元测试,因此,我在测试的resources中也放入了一份。
3. 最重要的一步,新建bootstrap.yml 在bootstrap.yml 中配置keystore ,一定要在bootstrap.yml中文件配置,否则,将会报 No qualifying bean of type 'org.springframework.security.crypto.encrypt.TextEncryptor 这样的错误
4. 单元测试
@RunWith(BladeSpringRunner.class) @SpringBootTest(classes = SQLInspectionApplication.class) @BladeBootTest(enableLoader = true, value = "imobpay-sqlinspection", profile = "test") public class ISqlJobServiceTest { @Autowired private ISqlJobService sqlJobService; @Autowired private TextEncryptor textEncryptor; @Autowired private KeyProperties keyProperties; @Test public void testEncrypt() { String plainText = "ABCDEFG"; String encryptedText = textEncryptor.encrypt(plainText); System.out.println(encryptedText); // System.out.println("keyStore = " + keyStore); String s = textEncryptor.decrypt(encryptedText); System.out.println("s = " + s); System.out.println("keyProperties = " + keyProperties); } }
由于我公司使用的bladex 企业版,因此这里的注解配置使用的bladex 封装的配置,可以自行换成springboot 的单元测试注解。
5. 如果使用maven 最好在pom.xml中加入如下配置:
<build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <excludes> <exclude>**/*.jks</exclude> </excludes> </resource> <resource> <directory>src/main/resources</directory> <filtering>false</filtering> <includes> <include>**/*.jks</include> </includes> </resource> </resources> </build>
本文来自博客园,作者:margo,转载请注明原文链接:https://www.cnblogs.com/ZMargo/articles/13161424.html