在我的spring boot应用程序中,我希望jasypt解密除一个以外的所有组件中的注入属性。
。我发现Jasypt自动加密/解密非常方便,但是在我的SecurityConfig
中,我想获取加密的值,并在以后对其解密。
如何为一个属性或一个类禁用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
}
答案 0 :(得分:1)
不使用ENC()并提供未加密的纯文本作为密码怎么样?
答案 1 :(得分:0)
有一个解决方法:将其写在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)
}