10
votes

Comment puis-je configurer Hibernate pour utiliser SSL pour parler au serveur DB?

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 -

http://www.oracle.com/technology/tech/java/sqlj_jdbc/pdf/wp-oracle-jdbc_thin_ssl_2007.pdf

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?


1 commentaires

Ce lien est mort, et je pense que c'est la version mise à jour: oracle.com/technetwork/topics/...


4 Réponses :


5
votes

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>


3 commentaires

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.



1
votes

doit être géré par le pilote mais vous devrez peut-être avoir à faire une certaine configuration. Oracle Docs


0 commentaires


2
votes

Veuillez ajouter une propriété à la suite dans le fichier de configuration Hibernate pour activer SSL:

faux true


2 commentaires

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: true mais pour mon cas, il n'a pas fonctionné. Je dois utiliser ci-après pour le faire fonctionner: true