如何禁用jasypt对单个组件的自动属性解密?

How to disable jasypt's automatic property decryption for a single component?

在我的 spring 引导应用程序中,我希望 jasypt 解密 除了一个 .

所有组件中的注入属性

我发现 jasypt automatic encryption/decryption 很方便,但在我的 SecurityConfig 中,我想获取加密值,稍后再解密。

如何禁用一个 属性 或一个 class 的 jasypt 解密?

@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Value("${password}")
    private String password;// <= this field will contain the decrypted password, but should contain the encrypted password
}

不使用 ENC() 并提供裸加密文本作为密码怎么样?

有一个解决方法:将此写在您的 application.properties:

password=ENC_X(1234)

并在注入属性时将ENC_X替换为ENC

@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Value("#{'${password}'.replaceFirst('^ENC_X','ENC')}")
    private String password;// <= this field will contain 'ENC(1234)' (unencrypted)
}