我有 jasypt-spring-boot-1.17,带有 spring 版本“4.2.5.RELEASE”和 spring Boot 版本“1.5.3.RELEASE”。
我正在使用该网站的第一种方法(https://github.com/ulisesbocchio/jasypt-spring-boot)因为我在 application.java 类中使用 @SpringBootApplication 。
我做了第一次测试。
1. 我在 ApplicationMain.java 中使用了 @PropertySource("classpath:sampleservices.yml") 或 @PropertySource("classpath:sampleservices.properties") 表示法。
2. 我将 ENC() 密码保存在单独的文件中,即sampleservices.yml 或sampleservices.properties。
3. 我在 application.yml 文件中定义了以下代码。我在环境变量中为 JASYPT_ENCRYPTOR_PASSWORD 设置了纯密码值。测试成功。
贾西普特:
加密器:
bean:加密器Bean
密码:${JASYPT_ENCRYPTOR_PASSWORD:}
但是,真正的加密 ENC() 密码以以下嵌套方式存储在我的 application.yml 文件中。请让我知道我到底应该实施什么才能使解密过程成功。我需要使用这个解密的密码登录数据库。
我确实更改了此代码 @PropertySource("application.yml") 但我不知道如何访问此处的密码字段。
从 application.yml 文件:
春天:
型材:样品
数据源:
驱动程序类名称:com.mysql.jdbc.Driver
网址:jdbc:mysql:abc
用户名:用户名
密码:ENC(xxxxxxxx)
I kept getting this error.
com.ulisesbocchio.jasyptspringboot.exception.DecryptionException: Decryption of Properties failed, make sure encryption/decryption passwords match
at com.ulisesbocchio.jasyptspringboot.resolver.DefaultPropertyResolver.resolvePropertyValue(DefaultPropertyResolver.java:37) ~[jasypt-spring-boot-1.17.jar!/:?]
Thanks a lot!
我在 Spring Boot 2.1.3 上遇到了同样的问题。但后来我发现这只是我的愚蠢案例。我只是理解“输入”和“密码”参数含义之间的错误。当我在命令提示符下加密时,我认为“输入”意味着密钥,然后当我运行应用程序时,我在其中两个之间交换值。
所以,请记住:
输入=[您的真实密码]
密码=[是 jasypt 密钥]
如果这不是您的根本原因,则需要考虑的另一件事是,当您在 Windows 上加密密码时,它可能无法在 Linux 上使用。当需要在 Linux 上运行应用程序时,您可能必须在 Linux 上进行加密。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)