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

发布于 2024-08-29 18:46:19 字数 2525 浏览 4 评论 0原文

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

I want to add SSL security in the Database layer. I am using Struts2.1.6, Spring 2.5, JBOSS 5.0 and Informix 11.5. Any idea how to do this?

I have researched through a lot on the internet but could not find any solution.

Please suggest!

Here is my datasource and entity manager beans which is working perfect without 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" /> 

Thankyou very much for your suggestion. So basically I need to set something like this in my applicationContext.xml, Please correct me if I am wrong:

<property name="username" value="username" />  
<property name="password" value="password" />
**<property name="sslConnection" value="true" />** 
<property name="minIdle" value="2" />  

But how do I set the SSL certificate in java runtime. The link which you have provided is good but for some reason I am not able to follow. Please put your suggestion.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

对不⑦ 2024-09-05 18:46:19

使用 SSL 在应用程序和数据库之间进行通信必须得到数据库服务器(和 JDBC 驱动程序)的支持。

根据 文档,这是由 Informix 动态服务器 (IDS) 自版本 11.50 起。

如果使用 IBM Data Server Driver for JDBC and SQLJ type 4 连接到 DB2® for z/OS® Version 9 或更高版本、DB2 Database for Linux®、UNIX® 和 Windows® 版本 9.1、Fix Pack 2 或更高版本,或者 IBM Informix® Dynamic Server (IDS) 版本 11.50 或更高版本

(...)

要使用 SSL 连接,您需要:

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

该文档应该有所帮助。

如果您使用 11.50 之前的 IDS 版本,那么恐怕您必须使用 SSH 隧道。

Using SSL for the communication between an application and a database is something that has to be supported by the database server (and the JDBC driver).

According to the documentation, this is supported by Informix Dynamic Server (IDS) since version 11.50.

You can use SSL support in your Java applications if you use IBM Data Server Driver for JDBC and SQLJ type 4 connectivity to DB2® for z/OS® Version 9 or later, to DB2 Database for Linux®, UNIX®, and Windows® Version 9.1, Fix Pack 2 or later, or to IBM Informix® Dynamic Server (IDS) Version 11.50 or later.

(...)

To use SSL connections, you need to:

  • Configure connections to the data source to use SSL. (link)
  • Configure your Java Runtime Environment to use SSL. (link)

The documentation should help.

If you're using a version of IDS prior to 11.50, then I'm afraid you'll have to use SSH tunneling.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文