Как настроить SSL поверх базы данных весной? - PullRequest
1 голос
/ 25 апреля 2010

Я хочу добавить безопасность SSL на уровне базы данных. Я использую Struts2.1.6, Spring 2.5, JBOSS 5.0 и Informix 11.5. есть идеи как это сделать?

Я много исследовал в Интернете, но не смог найти никакого решения.

Пожалуйста, предложите!

Вот мои компоненты управления данными и сущностями, которые отлично работают без 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" />  

Но как мне установить SSL-сертификат во время выполнения Java? Ссылка, которую вы предоставили, является хорошей, но по какой-то причине я не могу перейти. Пожалуйста, оставьте свое предложение.

1 Ответ

1 голос
/ 25 апреля 2010

Использование SSL для связи между приложением и базой данных должно поддерживаться сервером базы данных (и драйвером JDBC).

Согласно документации , это поддерживается Informix Dynamic Server (IDS) начиная с версии 11.50.

Вы можете использовать поддержку SSL в своих Java-приложениях, если используете Драйвер IBM Data Server для JDBC и SQLJ типа 4 возможность подключения к DB2® для z / OS Версии 9 или новее, к базе данных DB2 для Linux ®, UNIX® и Windows® версии 9.1, Fix Pack 2 или новее или до IBM Informix® Dynamic Server (IDS) версии 11.50 или новее .

(...)

Чтобы использовать SSL-соединения, вам необходимо:

Документация должна помочь.

Если вы используете версию IDS до 11.50, то, боюсь, вам придется использовать SSH-туннелирование.

...