如何禁用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)
}
在我的 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)
}