J'ai un WebApp Java existant qui utilise Hibernate pour sa persistance. On m'a dit que je devais devoir parler à la base de données cryptée - alors ma première pensée est de la configurer pour faire la communication via SSL - et est passée à travers comprendre comment configurer Oracle pour écouter JDBC sur SSL - p>
et a écrit une classe de test rapide pour vérifier qu'il a été configuré et fonctionnant (connexion via JDBC standard). Cela m'a laissé avec la question de la configuration de Hibernate - malheureusement, je ne vois pas comment Hibernate le soutient? p> http://www.oracle.com/technology/tech/java/sqlj_jdbc/pdf/wp-oracle-jdbc_thin_ssl_2007.pdf
code> p>
4 Réponses :
Hibernate fonctionne avec des sources de données JDBC standard, il n'est donc pas nécessaire de la configuration spécifique à l'hibernate.
Voici un exemple rapide qui devrait fonctionner lors de la configuration de Hibernate avec le ressort: P>
<bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource"> <property name="URL"><value><!-- JDBC URL that specifies SSL connection --></value></property> <!-- other relevant properties, like user and password --> <property name="connectionProperties> <value> oracle.net.ssl_cipher_suites: (ssl_rsa_export_with_rc4_40_md5, ssl_rsa_export_with_des40_cbc_sha) oracle.net.ssl_client_authentication: false oracle.net.ssl_version: 3.0 oracle.net.encryption_client: REJECTED oracle.net.crypto_checksum_client: REJECTED </value> </property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- classes etc --> </bean>
Cependant, je dois définir des propriétés sur le conducteur - à l'aide de JDBC, je peux juste faire ceci: Prop .setProperty ("oracle.net.ssl_cipher_suites", "(SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA)"); prop.seproperty ("oracle.net.ssl_client_authentication", "faux"); prop.seproperty ("oracle.net.ssl_version", "3.0"); prop.seproperty ("oracle.net.cryption_client", "rejeté"); prop.seproperty ("oracle.net.crypto_checksum_client", "rejeté"); Cependant, comment puis-je obtenir des propriétés de Thos associées au conducteur via Hibernate?
Cela dépend de la manière dont vous configurez Hibernate. Je vais ajouter un exemple que vous pouvez utiliser avec le printemps dans un instant.
Si vous n'utilisez pas le printemps, voir le tableau 3.4 de l'Hibernate Docs: docs.jboss.org/hibernate/stable/core/reference/fr/html/... - Bien que je ne l'ai pas testé, il semble que vous puissiez passer des propriétés JDBC à Hiberner juste en ajoutant hibernate.Connection. * Propriétés.
doit être géré par le pilote mais vous devrez peut-être avoir à faire une certaine configuration. Oracle Docs P>
Essayez ceci: liens associés p> http://www.razorsql.com/articles/mysql_ssl_jdbc.html p> http://dev.mysql.com/doc/refman/5.0/fr/connector-j-reference-utilisation-ssl.html < / a> p> http: // www.javabeat.net/qna/164-hibernate-jdbc-and-connection-properties/ p> p>
J'ai essayé votre configuration mais cela ne me donne aucun effet.
Veuillez ajouter une propriété à la suite dans le fichier de configuration Hibernate pour activer SSL: P>
Y a-t-il quelque chose de nouveau dans cette réponse que les autres réponses n'ont pas déjà dit?
Les autres répondent:
Ce lien est mort, et je pense que c'est la version mise à jour: oracle.com/technetwork/topics/...