2010-04-24 5 views
1

Je souhaite ajouter la sécurité SSL dans la couche Base de données. J'utilise Struts2.1.6, Spring 2.5, JBOSS 5.0 et Informix 11.5. Une idée de comment faire cela? J'ai beaucoup étudié sur Internet mais je n'ai trouvé aucune solution.Comment configurer SSL sur une base de données au printemps?

Veuillez nous suggérer!

Voici mon DataSource et directeur de l'entité haricots qui fonctionne parfaitement sans 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" /> 

Merci beaucoup pour votre suggestion. Donc, fondamentalement, je dois mettre quelque chose comme ça dans mon applicationContext.xml, S'il vous plaît me corriger si je me trompe:

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

Mais comment dois-je configurer le certificat SSL dans Java Runtime. Le lien que vous avez fourni est bon, mais pour une raison que je ne suis pas en mesure de suivre. S'il vous plaît mettez votre suggestion.

+0

Ceci est un problème à résoudre par le pilote JDBC et la base de données, et n'a rien à voir avec JBoss ou Spring. – skaffman

Répondre

1

L'utilisation de SSL pour la communication entre une application et une base de données est quelque chose qui doit être pris en charge par le serveur de base de données (et le pilote JDBC).

Selon the documentation, cela est pris en charge par Informix Dynamic Server (IDS) depuis la version 11.50.

Vous pouvez utiliser le support SSL dans vos applications Java si vous utilisez IBM Data Server Driver pour le type JDBC et SQLJ 4 connectivité à DB2® pour z/OS® version 9 ou plus tard, à la base de données DB2 pour Linux® , UNIX® et Windows® version 9.1, groupe de correctifs 2 ou ultérieur, ou IBM Informix® Dynamic Server (IDS) version 11.50 ou ultérieure.

(...)

Pour utiliser les connexions SSL, vous devez:

  • connexions Configurer à la source de données pour utiliser SSL. (link)
  • Configurez votre environnement Java Runtime pour utiliser SSL. (link)

La documentation devrait aider.

Si vous utilisez une version d'IDS antérieure à 11.50, je crains que vous ne deviez utiliser le tunneling SSH.

Questions connexes