我有一个3d派对库,它接受一个密码作为定义为Spring bean的类的构造函数args。
<bean class="com.thirdparty.CoolClass" id="coolClassId">
<constructor-arg index="1" value="clearTextPassword" />
</bean>
但我有问题...安全政策禁止我有明确的文字密码。所以我可以设置另一个接受加密密码并对其进行解密的bean。
@Component("decryptor")
public class DecryptorService {
public String decrypt(String encryptedString) {
///
}
}
是否存在我的XML,以便构造函数arg通过将加密属性传递给此DecryptorService来获取其值?
答案 0 :(得分:1)
假设您对代码的一方有写访问权限。
使用@Configuration
方法创建@Bean
课程,如下所示
@Configuration
class ApplicationConfig {
@Autowired DecryptorService decryptorService;
@Autowired Properties props;
@Bean
public String clearTextPassword() {
decryptorService.decrypt(props.getEncryptedPassword());
}
}
然后将bean定义更改为使用ref
<bean class="com.thirdparty.CoolClass" id="coolClassId">
<constructor-arg index="1" ref="clearTextPassword" />
</bean>