2012-08-06 14 views
12

कैसे सेटअप करें मैं अपने हेरोकू/स्प्रिंग एप्लिकेशन से postgres.heroku.com पोस्टग्रेज़ डेटाबेस में डेटास्रोत बनाने की कोशिश कर रहा हूं। यहां मेरा applicationContext.xml स्निपेट है।स्प्रिंग/हेरोकू/पोस्टग्रेस एसएसएल डेटासोर्स

<bean id="securityDataSource" class="org.apache.commons.dbcp.BasicDataSource"> 
    <property name="driverClassName" value="org.postgresql.Driver"/> 
    <property name="url" value="jdbc:postgresql://url/dstabase"/> 
    <property name="username" value="user"/> 
    <property name="password" value="password"/> 
</bean> 

लेकिन जब मैं अनुप्रयोग चलाने, बिल्ला इस त्रुटि देता है:

Cannot create PoolableConnectionFactory (FATAL: no pg_hba.conf entry for host "10.11.12.13", user "username", database "database", SSL off) 

मैं इसे कैसे कॉन्फ़िगर SSL का उपयोग कर सकते हैं? मुझे postgres.heroku.com

+1

गॉट को ssl=true बदलने के लिए स्वीकार करने के लिए मैं PostgreSQL या Heroku इस्तेमाल कभी नहीं किया है, लेकिन अनुमान लगा रहा हूँ चाहते निम्नलिखित की मदद करनी चाहिए: https: // devc enter.heroku.com/articles/connecting-to-relational- डेटाबेस-on-heroku-with-java#connecting-to-a-database-remotely – DB5

+0

@ डीबी 5 जो सही लगता है, आपको इसे उत्तर के रूप में रखना चाहिए – araqnid

+0

कैसे किया आप इसे हल करते हैं? –

उत्तर

22

के खिलाफ कनेक्शन स्थापित करने के लिए इसकी आवश्यकता है, आपको प्रासंगिक एसएसएल जानकारी के साथ अपने जेडीबीसी कनेक्शन यूआरएल को विस्तारित करने की आवश्यकता है।

ssl=true&sslfactory=org.postgresql.ssl.NonValidatingFactory 

तो अपने मामले में URL यह होगा::

jdbc:postgresql://url/dstabase?ssl=true&amp;sslfactory=org.postgresql.ssl.NonValidatingFactory 

इस जानकारी के लिए स्रोत:

+0

यह सेटिंग एक एसएसएल कनेक्शन खोलता है, लेकिन प्रमाण पत्र मान्य नहीं करता है। यदि आपके पास यहां वर्णित प्रमाणपत्रों का उपयोग करने का मौका है: https://jdbc.postgresql.org/documentation/head/ssl-client.html – Markus

4

जब

आपका JDBC कनेक्शन यूआरएल निम्नलिखित शामिल करने की आवश्यकता होगी jdbc के साथ हेरोकू पोस्टग्रेस से कनेक्ट होने पर, आपको कभी-कभी त्रुटि मिल जाएगी जब तक आप यूआरएल में एसएसएल पैरामीटर जोड़ते हैं:

ssl=true 
sslfactory=org.postgresql.ssl.NonValidatingFactory 
3

यह मेरे लिए काम किया:

<bean id="securityDataSource" class="org.apache.commons.dbcp.BasicDataSource"> 
     <property name="driverClassName" value="org.postgresql.Driver"/> 
     <property name="url" value="jdbc:postgresql://host:port/database?ssl=true&amp;sslfactory=org.postgresql.ssl.NonValidatingFactory"/> 
     <property name="username" value="user"/> 
     <property name="password" value="password"/> 
    </bean> 

गलती मैं &amp; के बजाय एक & (मूर्ख मुझे पता है)

?ssl=true&amp;sslfactory=org.postgresql.ssl.NonValidatingFactory 

उपयोग कर रहा था क्या कर रहा था और हाँ लिंक निश्चित रूप से उपयोगी है : https://devcenter.heroku.com/articles/connecting-to-relational-databases-on-heroku-with-java#connecting-to-a-database-remotely

और इन्हें रखें मन: इस लिंक में, JDBC: postgres: // मेजबान .. प्रयोग किया जाता है, उपयुक्त आप (PostgreSQL बजाय का उपयोग करें) के लिए अगर कोई उपयुक्त Sql ड्राइवर त्रुटि तब होती है

5

काम के बाद नहीं हो सकता है जो मेरे लिए:

jdbc:postgresql://url/databaseName?sslmode=require&amp;sslfactory=org.postgresql.ssl.NonValidatingFactory 

मैं sslmode=require

+1

धन्यवाद। यह भी मेरे लिए सहायक था ... !! –