How can I configure Hibernate to use SSL to talk to the DB server?

前端 未结 4 860
Happy的楠姐
Happy的楠姐 2021-01-12 01:37

I have an existing java webapp that uses Hibernate for it\'s persistence. I\'ve been told that I have to have to talk to the DB encrypted - so my first thought is to set it

相关标签:
4条回答
  • 2021-01-12 01:49

    Hibernate works with standard JDBC data sources, so there is no need for Hibernate-specific configuration.

    Here's an quick example that should work when configuring Hibernate with Spring:

    <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>
    
    0 讨论(0)
  • 2021-01-12 01:53

    Please add following property in Hibernate configuration file to enable SSL :

    <property name="hibernate.connection.verifyServerCertificate">false</property> <property name="hibernate.connection.useSSL">true</property>

    0 讨论(0)
  • 2021-01-12 01:53

    Should be handled by the driver but you may have to do some configuration. Oracle Docs

    0 讨论(0)
  • 2021-01-12 02:13

    Try this:

        <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://blablaba:8443/dbname?useSSL=true</property>
        <property name="hibernate.connection.verifyServerCertificate">false</property>
        <property name="hibernate.connection.requireSSL">true</property>
        <property name="hibernate.connection.autoReconnect">true</property>
        <property name="hibernate.connection.username">bablablab</property>
        <property name="hibernate.connection.password">clclclclc</property>
    

    related links

    http://www.razorsql.com/articles/mysql_ssl_jdbc.html

    http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-using-ssl.html

    http://www.javabeat.net/qna/164-hibernate-jdbc-and-connection-properties/

    0 讨论(0)
提交回复
热议问题