我想将Jasypt库与spring属性机制集成。
在此示例教程中:http://www.jasypt.org/spring31.html作者假定用户手动执行加密,然后仅将ENC()占位符之间的加密值传递给配置文件。这对我来说还不够。
我想实现给定的方案:
将此行放入文件中:
datasource.password=DEC(mysecretpassword)
启动申请
Spring Framework将加密密码(使用jasypt)并将以上行替换为:
datasource.password=ENC(G6N718UuyPE5bHyWKyuLQSm02auQPUtm)
在进一步启动时,spring仅解密加密值(例如使用org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer
)并且文件未被修改。
我想我需要创建自己的Spring PropertyPlaceholderConfigurer
,但我认为没有任何修改文件的可能性。
我可以将自定义org.springframework.util.PropertiesPersister
设置为我的PropertyPlaceholderConfigurer
,好吧,但我仍然不知道我需要更新哪个文件(在我的春天@Configuration可能有很多属性位置,有些属性可以用另一个文件等的值覆盖。)。
换句话说:我需要在属性资源解析和合并之后注入我的(de | en)加密逻辑,但是在将值注入另一个bean之前。
感谢您提前告知如何解决此问题。
答案 0 :(得分:0)
我用jira中找到的解决方案解决了一个老问题,我现在无法找到它。无论如何,This是一个非常类似的解决方案,通过这种方式你可以告诉"在加载dataSource bean之前加载propertiesPlaceHolder文件的fw。