1

我想将 Jasypt 库与 spring 属性机制集成。

在此处的示例教程中:http ://www.jasypt.org/spring31.html作者假设用户手动执行加密,然后仅将 ENC( ) 占位符之间的加密值传递给配置文件。这对我来说还不够。

我想实现给定的场景:

  1. 将此行放入带有属性的文件中:

    datasource.password=DEC(mysecretpassword)
    
  2. 开始申请

  3. Spring Framework 将加密密码(使用 jasypt)并将上面的行替换为:

    datasource.password=ENC(G6N718UuyPE5bHyWKyuLQSm02auQPUtm)
    

在进一步的启动中,spring 只解密加密的值(例如使用org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer)并且文件不被修改。

我想我需要创建自己的 Spring PropertyPlaceholderConfigurer,但我看不到任何修改文件的可能性。

我可以将自定义设置org.springframework.util.PropertiesPersister为我的PropertyPlaceholderConfigurer,好吧,但我仍然不知道我需要更新哪个文件(在我的春天@Configuration 可能有很多属性位置,一些属性可以用另一个文件中的值覆盖等)。

换句话说:我需要在属性资源解析和合并之后注入我的(de|en)加密逻辑,但在将值注入另一个 bean 之前。

感谢您提前提供任何解决此问题的建议。

4

1 回答 1

0

我用我在 jira 中找到的解决方案解决了一个老问题,我现在找不到它。无论如何,是一个非常相似的解决方案,这样你“告诉” fw 在加载你的 dataSource bean 之前加载你的 propertiesPlaceHolder 文件。

于 2016-02-23T13:53:55.663 回答