我需要安全地外部化一些集成测试使用的Spring应用程序上下文的用户名和密码(对于我的应用程序本身,我使用JNDI)。
想法是这样的:
application.properties应用程序/
那么我的spring应用程序上下文数据源bean将如下所示:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost/my_database" />
    <property name="username" value="${application.username}" />
    <property name="password" value="${application.password}" />
    <property name="initialSize" value="3" />
    <property name="maxActive" value="10" />
  </bean>诀窍在于,在.properties文件中,密码也必须加密。
我甚至不知道这是否可能,但也许有人有了一个想法?
杰森
发布于 2017-02-01 22:06:36
以编程方式而不是在XML中定义数据源,或者如果您正在使用Spring Boot,则通过application.yaml中的配置来定义数据源
无论采用哪种方式,都可以将用户和密码指定为Spring Environment属性,并从Spring Cloud Config服务器填充属性,该服务器支持敏感属性的完全加密和解密。
请参阅here
或者,如果您使用的是应用程序服务器,请使用JNDI数据源,并让应用程序服务器处理数据源密码的安全性。
https://stackoverflow.com/questions/41979882
复制相似问题