Configurer le printemps pour se connecter à mysql via ssl
Je me connecte à MySQL via SSL à partir de mon application Java. J'ai configuré MYSQL pour prendre en charge SSL et généré les certificats clients. J'ai importé le serveur de certificat d'autorité de certification et le certificat du client dans le magasin de clés. C'est de cette façon que mon code ressemble actuellement
String url = "jdbc:mysql://127.0.0.1:3306/MySampleDb? verifyServerCertificate =true&useSSL=true&requireSSL=true"
System.setProperty("javax.net.ssl.keyStore","/home/cert/keystore");
System.setProperty("javax.net.ssl.keyStorePassword","password");
System.setProperty("javax.net.ssl.trustStore","/home/cert/truststore");
System.setProperty("javax.net.ssl.trustStorePassword","password");
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(url, user, password);
Je veux utiliser le printemps avec C3p0 pour se connecter à MYSQL via SSL.C'est mon de printemps de fichier de configuration qui lit les paramètres de jdbc.les propriétés.
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
........
</bean>
Comment puis-je configurer printemps pour définir les propriétés
verifyServerCertificate =true
useSSL=true
requireSSL=true"
Aussi est-il possible de keyStore et trustStore valeurs au printemps de fichier de config.
OriginalL'auteur d123 | 2013-01-10
Vous devez vous connecter pour publier un commentaire.
La valeur de
jdbc.url
en jdbc.propriétés doit êtreDe ces paramètres doit être ajouté directement à l'URL pour le serveur MySQL. Les paramètres de
keyStore
ettrustStore
doivent être passés à la JVM au début de la sorte:Vous peut utiliser Spring pour définir des propriétés système, mais je ne l'utilise jamais, c'est trop lourd.
OriginalL'auteur Marcel Stör
Il n'est pas nécessaire de passer
keyStore
ettrustStore
àjava
programme ou ensemble de toutes les propriétés du système, car il peut être réalisé par l'intermédiaire des propriétés de connexion de connexion!De sorte que vous pouvez utiliser différents certifié pour des connexions différentes (et des applications si vous êtes dans le serveur d'application).
Réponse originale à cette question: https://stackoverflow.com/a/51879119/173149 partie Pertinente:
Il est documenté:
OriginalL'auteur gavenkoa
Vous pouvez configurer le useSSl, requireSSL, et verifyServerCertificate propriétés d'un
DataSource
à l'aide de Java en fonction de la configuration. LeaddDataSourceProperty
méthode de laDataSource
classe vous donne la possibilité, comme le montre l'extrait de code ci-dessous (vous pouvez remplacer HikariDataSource avec un C3p0 exemple)MySQL Connector/J expose les propriétés de configuration pour les magasins de clés (par exemple
trustCertificateKeyStoreUrl
), donc je suppose que c'addDataSourceProperty
peut être utilisé pour ces propriétés.Je ne sais pas si la configuration XML schéma fournit une étiquette qui correspond à
addDataSourceProperty
.OriginalL'auteur Mark Norman