我有一个连接到Sybase 15.5服务器的Spring MVC应用程序。现在,数据库服务器已升级到Sybase 15.7,并且已在服务器中设置“密码加密”。意味着,客户端应该在将数据库密码发送到数据库服务器之前对其进行加密。我的属性文件中有密码。
问题是,如何在发送到数据库服务器之前加密spring上下文文件中的密码?
当前Spring上下文文件:
<!-- ========================== Data Source [Start] ================================================================== -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.driverClassName}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="initialPoolSize" value="${jdbc.initialPoolSize}"/>
<property name="minPoolSize" value="${jdbc.minPoolSize}"/>
<property name="maxPoolSize" value="${jdbc.maxPoolSize}"/>
<!-- <property name="timeout"><value>0</value></property> --> <!-- 0 means: no timeout -->
<property name="idleConnectionTestPeriod"><value>200</value></property>
<property name="acquireIncrement"><value>1</value></property>
<property name="maxStatements"><value>0</value></property> <!-- 0 means: statement caching is turned off. -->
<property name="numHelperThreads"><value>3</value></property> <!-- 3 is default -->
</bean>
<!-- ========================== Data Source [End] ==================================================================== -->
答案 0 :(得分:0)
我认为您可以在发送之前使用内部bean加密您的pwd。他们需要某种加密方法吗?
答案 1 :(得分:0)
我最终能够使用url方法实现这一目标。这使用com.certicom.ecc.jcae.Certicom'类进行加密。
步骤:
在属性文件中编辑jdbc url,如下所示 jdbc.url = JDBC:SYBASE:TDS:主机名:端口/数据库名称ENCRYPT_PASSWORD = TRUE&安培; JCE_PROVIDER_CLASS = com.certicom.ecc.jcae.Certicom
将以下3个jars文件放在构建路径中。
EccpressoFIPSJca.jar,EccpressoFIPS.jar,jconn4-7.07.jar
这将使用这些API加密数据库密码,然后通过网络将其发送到Sybase 15.7服务器。希望这可以帮助。感谢。