Hikaricp 中的密码加密

Password Encryption in Hikaricp

我在 spring 项目中使用 HikariCP。 现在,我定义了这样的连接

<bean id="hikariConfigLegacyReasonCode" class="com.zaxxer.hikari.HikariConfig">
    <property name="poolName" value="HikariCPReasonCodePool" />
    <property name="connectionTestQuery" value="SELECT 1" />
    <property name="dataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlDataSource"/>
    <property name="registerMbeans" value="true"/>
    <property name="maximumPoolSize" value="15"/>
     <property name="idleTimeout" value="60000"/>
     <property name="connectionTimeout" value="5000" ></property>

    <property name="dataSourceProperties">
        <props>
             <prop key="url">jdbc:mysql://${LegacyReasonCodeIp}</prop>
             <prop key="user">${LegacyReasonCodeUsername}</prop>
             <prop key="password">${LegacyReasonCodePassword}</prop>
             <prop key="cachePrepStmts" >true</prop>
             <prop key="prepStmtCacheSize" >250</prop>
             <prop key="prepStmtCacheSqlLimit" >2048</prop>
             <prop key="useServerPrepStmts" >true</prop>    

        </props>
    </property>

此处,服务器名称、用户名和密码将从 属性 文件中加载。有没有办法以加密方式将数据库密码存储在 属性 文件中?

试试 jasypt 项目。它包括 Spring 的许多集成,包括以下实施:

  • PropertyPlaceholderConfigurer
  • PropertyOverrideConfigurer
  • PreferencesPlaceholderConfigurer

http://www.jasypt.org/spring31.html