我想在数据库层添加SSL安全性。我使用的是Struts2.1.6,Spring 2.5,JBOSS 5.0和Informix 11.5。知道怎么做吗?
我已在互联网上进行了大量研究但未找到任何解决方案。
请建议!
这是我的数据源和实体管理器bean,它在没有SSL的情况下工作正常:
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="database" value="INFORMIX" />
<property name="showSql" value="true" />
</bean>
</property>
</bean>
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.informix.jdbc.IfxDriver" />
<property name="url"
value="jdbc:informix-sqli://SERVER_NAME:9088/DB_NAME:INFORMIXSERVER=SERVER_NAME;DELIMIDENT=y;" />
<property name="username" value="username" />
<property name="password" value="password" />
<property name="minIdle" value="2" />
</bean>
<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean" lazy-init="false">
<property name="targetObject" ref="dataSource" />
<property name="targetMethod" value="addConnectionProperty" />
<property name="arguments">
<list>
<value>characterEncoding</value>
<value>UTF-8</value>
</list>
</property>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" scope="prototype">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
非常感谢你的建议。所以基本上我需要在我的applicationContext.xml中设置这样的东西,如果我错了请纠正我:
<property name="username" value="username" />
<property name="password" value="password" />
**<property name="sslConnection" value="true" />**
<property name="minIdle" value="2" />
但是如何在java运行时中设置SSL证书。您提供的链接很好,但由于某种原因,我无法关注。请提出你的建议。
答案 0 :(得分:1)
使用SSL进行应用程序和数据库之间的通信是数据库服务器(和JDBC驱动程序)必须支持的。
根据the documentation,自版本11.50以来Informix Dynamic Server (IDS)支持此功能。
如果使用 IBM数据服务器驱动程序用于JDBC和SQLJ类型4 连接到DB2®forz /OS®V9或更高版本,则可以在Java应用程序中使用SSL支持Linux®,UNIX®和Windows®V9.1,Fix Pack 2或更高版本,或IBMInformix®DynamicServer(IDS)版本11.50或更高版本。
(...)
要使用SSL连接,您需要:
文档应该有所帮助。
如果您在11.50之前使用的是IDS版本,那么我担心您将不得不使用SSH隧道。