我想将我的Spring JDBC应用程序与SSL连接。 DBMS是Informix IBM。
我正在使用spring-config.xml文件,在其中声明数据源bean:
<bean id="dataSource" class="com.sopra.datasource.CDataSource" init-method="init"
destroy-method="close">
<property name="url" value="${jdbc.url}" />
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="removeAbandoned" value="true" />
<property name="initialSize" value="20" />
<property name="maxActive" value="30" />
</bean>
非常感谢。
苹果电脑
最佳答案
您是否已与工作的Informix服务器建立了基本的SSL连接,例如使用dbaccess工具?如果不是,则可能要参考此developerWorks文章中的配置步骤:
https://www.ibm.com/developerworks/data/library/techarticle/dm-0912securesockets1/dm-0912securesockets1-pdf.pdf
本文使用的是Informix 11.50,而我使用的是12.10,后者使用的是IBM GSKit的更高版本,因此我在使用gsk7capicmd的所有地方都替换了gsk8capicmd_64命令。
我不了解Spring JDBC,因此我使用了一个基本的JDBC演示程序来测试SSL连接。该程序基于《 Informix JDBC驱动程序指南》中列出的“用于SSL连接的JDBC示例”程序:
https://www.ibm.com/support/knowledgecenter/en/SSGU8G_12.1.0/com.ibm.jdbc_pg.doc/ids_jdbc_490.htm
以下是代码中的一些相关摘录:
System.setProperty("javax.net.ssl.trustStore", "/home/keystore/keystore");
System.setProperty("javax.net.ssl.trustStorePassword", "password");
IfxConnectionPoolDataSource cds = new IfxConnectionPoolDataSource();
cds.setIfxIFXHOST("informix_hostname"");
cds.setServerName("informix_server");
cds.setPortNumber(port_number);
cds.setIfxSSLCONNECTION("true");
cds.setUser("informix");
cds.setPassword("password");
cds.setDatabaseName("stores_demo");
conn = cds.getPooledConnection().getConnection();
您可能还需要按照《 Informix JDBC驱动程序指南》的“加密选项”部分中的说明配置Java密码学扩展兼容的加密服务提供者:
https://www.ibm.com/support/knowledgecenter/en/SSGU8G_12.1.0/com.ibm.jdbc_pg.doc/ids_jdbc_059.htm