是否有任何方法可以使用spring保护.xml中的密码

时间:2010-02-22 05:50:03

标签: java spring

是否有任何方法可以使用spring

保护-servlet.xml文件中的数据库密码
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
  <property name="url"><value>jdbc:mysql:///BUSINESS</value></property>
  <property name="username"><value>root</value></property>
  <property name="password"><value>password</value></property>    
 </bean>

2 个答案:

答案 0 :(得分:2)

内置,没有。但您可以查看this blogpost,其中显示如何扩展DataSource以提供密码的AES加密。

另一种方法可能是扩展PropertyPlaceholderConfigurer并处理属性的AES(或RSA)加密。

但是,正如链接的博客帖子的评论中所述,将密钥存储在同一文件中并不会增加显着的安全性 - 它只会增加混淆。因此,在上述两种方法中,您必须从另一个位置获取AES / RSA密钥,可能仅对启动应用程序服务器的用户可访问(这与操作系统安全性有关)。

答案 1 :(得分:1)

通常采取的方法是将密码存储在生产计算机上的外部属性文件中。然后可以限制对此文件的访问。

请参阅此处了解如何配置弹簧部分:

property-placeholder location from another property