加密JBoss配置中的敏感信息

JBoss中的标准数据源配置要求数据库用户的用户名和密码位于xxx-ds.xml文件中。 如果我将我的数据源定义为c3p0 mbean,我会遇到同样的问题。

有加密用户和密码的标准方法吗? 保存钥匙的好地方是什么?

这当然与tomcat相关 – context.xml文件,spring配置文件等。

有一个维基文档: http : //www.jboss.org/community/docs/DOC-9703描述了这一点。

对于spring部分,您可以使用自己的spring的PropertyPlaceholderConfigurer扩展,并重写String convertPropertyValue(String originalValue)。 由于该方法的javadoc提到它(实际上在超类PropertyResourceConfigurer中):

将给定属性值从属性源转换为应该应用的值。

默认实现只返回原始值。 可以在子类中重写,例如检测加密值并相应地解密它们。

这意味着您可以在spring xml文件中使用$ {encoded.value}配置数据源,并在将解码后的值注入数据源之前解码该值。