2017-03-22 2 views
1

Je souhaite connecter mon application Spring JDBC avec SSL. Le SGBD est Informix IBM.Connexion d'Informix JDBC via SSL

J'utilise un fichier printemps-config.xml dans lequel je déclare la fève de source de données:

<bean id="dataSource" class="com.sopra.datasource.CDataSource" init-method="init" 
    destroy-method="close"> 
    <property name="url" value="${jdbc.url}" /> 
    <property name="driverClassName" value="${jdbc.driverClassName}" /> 
    <property name="username" value="${jdbc.username}" /> 
    <property name="password" value="${jdbc.password}" /> 
    <property name="removeAbandoned" value="true" /> 
    <property name="initialSize" value="20" /> 
    <property name="maxActive" value="30" /> 
</bean> 

Un grand merci.

Mac

+0

Des aides s'il vous plait? – Mac

Répondre

3

Avez-vous une connexion SSL de base au fonctionnement du serveur Informix, par exemple en utilisant l'outil de dbaccess? Sinon, vous pouvez vous référer à cet article de developerWorks pour les étapes de configuration:

https://www.ibm.com/developerworks/data/library/techarticle/dm-0912securesockets1/dm-0912securesockets1-pdf.pdf

Cet article utilise Informix 11,50 alors que j'utilisais 12.10 qui utilise une version ultérieure de l'IBM GSKit donc je substituais la commande gsk8capicmd_64 partout où l'article utilise gsk7capicmd. Je n'ai aucune connaissance de Spring JDBC, j'ai donc utilisé un programme de démonstration JDBC de base pour tester la connexion SSL. Ce programme a été basé sur le « échantillon JDBC pour la connexion SSL » programme figurant dans le Guide du pilote JDBC Informix:

https://www.ibm.com/support/knowledgecenter/en/SSGU8G_12.1.0/com.ibm.jdbc_pg.doc/ids_jdbc_490.htm

Voici quelques extraits pertinents du code:

System.setProperty("javax.net.ssl.trustStore", "/home/keystore/keystore"); 
System.setProperty("javax.net.ssl.trustStorePassword", "password"); 
IfxConnectionPoolDataSource cds = new IfxConnectionPoolDataSource(); 
cds.setIfxIFXHOST("informix_hostname""); 
cds.setServerName("informix_server"); 
cds.setPortNumber(port_number); 
cds.setIfxSSLCONNECTION("true"); 
cds.setUser("informix"); 
cds.setPassword("password"); 
cds.setDatabaseName("stores_demo"); 

conn = cds.getPooledConnection().getConnection(); 

Vous pouvez également Vous devez configurer un fournisseur de services de cryptage Java Cryptography Extension comme décrit dans la section Options de cryptage du Guide du pilote JDBC Informix:

https://www.ibm.com/support/knowledgecenter/en/SSGU8G_12.1.0/com.ibm.jdbc_pg.doc/ids_jdbc_059.htm

+0

Merci @Rimon Riddle pour votre aide, je suis en train de lire l'article que vous m'avez envoyé, je vous tiendrai au courant. – Mac

+0

Salut @Simon Riddle! J'ai fait partie du serveur de configuration. Lorsque j'ai configuré le côté client, j'ai reçu l'erreur suivante: org.springframework.jdbc.CannotGetJdbcConnectionException: Impossible d'obtenir la connexion JDBC; l'exception imbriquée est org.apache.commons.dbcp.SQLNestedException: Impossible de créer PoolableConnectionFactory (com.informix.asf.IfxASFException) – Mac

+0

Pourriez-vous nous aider s'il vous plaît? Merci beaucoup. – Mac