代码之家  ›  专栏  ›  技术社区  ›  Vicky

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

  •  2
  • Vicky  · 技术社区  · 14 年前

    在-servlet.xml文件中,是否有任何方法可以使用spring来保护数据库密码?

    <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 回复  |  直到 14 年前
        1
  •  2
  •   Bozho    14 年前

    内置的,没有,但是你可以检查 this blogpost 它显示了如何扩展 DataSource 提供密码的AES加密。

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

    但是,正如链接blogpost的注释中所指出的那样,将密码密钥存储在同一个文件中不会增加显著的安全性——它只会增加混淆。因此,在上述两种方法中,您都必须从另一个位置获取AES/RSA密钥,可能只有启动应用服务器的用户才能访问(这与操作系统安全性有关)。

        2
  •  1
  •   Community Michael Schmitz    7 年前

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

    有关如何配置此弹簧部分的信息,请参见此处:

    property-placeholder location from another property