如何在Spring中配置数据库SSL?

时间:2010-04-24 20:50:12

标签: ssl jdbc informix

我想在数据库层添加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证书。您提供的链接很好,但由于某种原因,我无法关注。请提出你的建议。

1 个答案:

答案 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连接,您需要:

     
      
  • 配置与数据源的连接以使用SSL。 (link
  •   
  • 配置Java运行时环境以使用SSL。 (link
  •   

文档应该有所帮助。

如果您在11.50之前使用的是IDS版本,那么我担心您将不得不使用SSH隧道。