2009-08-13 7 views
9

मेरे पास एक मौजूदा जावा वेबैप है जो इसके दृढ़ता के लिए हाइबरनेट का उपयोग करता है। मुझे बताया गया है कि मुझे डीबी एन्क्रिप्टेड से बात करनी है - इसलिए मेरा पहला विचार एसएसएल के माध्यम से संचार करने के लिए इसे स्थापित करना है - और पता चला कि ओएसकल को एसएसएल पर जेडीबीसी सुनने के लिए कैसे सेट अप किया जाए -डीबी सर्वर से बात करने के लिए एसएसएल का उपयोग करने के लिए मैं हाइबरनेट को कैसे कॉन्फ़िगर कर सकता हूं?

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

और एक त्वरित परीक्षण वर्ग है कि यह सेटअप और काम (मानक JDBC के माध्यम से जोड़ने) था सत्यापित करने के लिए लिखा था। इसने मुझे हाइबरनेट को कॉन्फ़िगर करने के मुद्दे के साथ छोड़ दिया - दुर्भाग्य से मुझे नहीं लगता कि हाइबरनेट इसका समर्थन कैसे करता है?

+0

कि लिंक मर चुका है, और मेरा मानना ​​है कि इस अद्यतन संस्करण है: http://www.oracle.com/technetwork/topics/wp-oracle-jdbc-thin- guration फ़ाइल एसएसएल सक्षम करने के लिए एसएसएल-130128.pdf – Jordan

उत्तर

5

हाइबरनेट मानक जेडीबीसी डेटा स्रोतों के साथ काम करता है, इसलिए हाइबरनेट-विशिष्ट कॉन्फ़िगरेशन की आवश्यकता नहीं है।

<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

मैं ड्राइवर पर कुछ गुण सेट करने के लिए हालांकि - JDBC का उपयोग कर मैं सिर्फ यह कर सकते हैं: प्रोप .setProperty ("oracle.net.ssl_cipher_suites", "(ssl_rsa_export_with_rc4_40_md5, ssl_rsa_export_with_des40_cbc_sha)"); prop.setProperty ("oracle.net.ssl_client_authentication", "false"); prop.setProperty ("oracle.net.ssl_version", "3.0"); prop.setProperty ("oracle.net.encryption_client", "अस्वीकृत"); prop.setProperty ("oracle.net.crypto_checksum_client", "अस्वीकृत"); हालांकि मैं हाइबरनेट के माध्यम से ड्राइवर से जुड़े गुणों को कैसे प्राप्त कर सकता हूं? –

+0

यह निर्भर करता है कि आप हाइबरनेट को कैसे कॉन्फ़िगर कर रहे हैं। मैं एक उदाहरण जोड़ूंगा जिसका उपयोग आप एक पल में वसंत के साथ कर सकते हैं। – andri

+0

यदि आप स्प्रिंग का उपयोग नहीं कर रहे हैं, तो हाइबरनेट डॉक्स के तालिका 3.4 देखें: http://docs.jboss.org/hibernate/stable/core/reference/en/html/session-configuration.html#configuration-optional - हालांकि मैंने इसका परीक्षण नहीं किया है, ऐसा लगता है कि आप जेबीबीसी गुणों को केवल हाइबरनेट को जोड़कर हाइबरनेट को पास कर सकते हैं। कनेक्शन। * गुण। – andri

1

चालक द्वारा नियंत्रित किया जाना चाहिए लेकिन आप कुछ विन्यास करना पड़ सकता है:

यहाँ एक त्वरित उदाहरण है कि जब वसंत के साथ हाइबरनेट को विन्यस्त काम करना चाहिए है। Oracle Docs

4

इस प्रयास करें:

<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> 

संबंधित लिंक

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/

2

कृपया हाइबरनेट आत्मविश्वास में निम्नलिखित संपत्ति जोड़ने

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

+1

क्या इस उत्तर में कुछ नया है कि अन्य उत्तरों ने पहले से ही नहीं कहा है? – pucky124

+0

दूसरों इस्तेमाल किया उत्तर: '<संपत्ति नाम =" hibernate.connection.requireSSL "> सच' लेकिन मेरे मामले के लिए यह काम किया नहीं था।मुझे इसे काम करने के लिए निम्नलिखित का उपयोग करना होगा: ' सत्य' –

संबंधित मुद्दे

 संबंधित मुद्दे