2012-12-31 21 views
11

मैं बिल्डिंग और तैनाती के लिए लीनिंगेन 2 का उपयोग करके क्लोजर वेब एप्लिकेशन पर काम कर रहा हूं। यह एक बहुत ही वेनिला वेबपैप है, और मैं कंपोजर, रिंग, और लीन-बीनस्टॉक का उपयोग कर रहा हूं। मेरे ऐप को डेटाबेस प्रमाण-पत्र और एस 3 क्रेडेंशियल्स दोनों का उपयोग करने की आवश्यकता है, और मुझे यकीन नहीं है कि मेरे ऐप में उन्हें स्टोर और एक्सेस करने का सबसे अच्छा तरीका है।डेटाबेस प्रमाण पत्र और leiningen?

डेटाबेस क्रेडेंशियल्स जैसी संवेदनशील चीजों को संभालने का सामान्य तरीका क्या है, जिसे लीइंग 2 का उपयोग करके मेरे ऐप के साथ तैनात करने की आवश्यकता है?

लोचदार बीनस्टॉक पर पर्यावरण चर सेट अप करना मेरे लिए संभव है, लेकिन यदि संभव हो तो मैं उस मार्ग से बचना चाहता हूं।

उत्तर

9

दो तरीके के साथ पढ़ने गुजरती हैं। एक पर्यावरण चर का उपयोग करना है, जो अच्छा है अगर आपके सभी कॉन्फ़िगरेशन मान स्ट्रिंग हैं और आपको मनमाने ढंग से घोंसले की आवश्यकता नहीं है। यहां आपकी सबसे अच्छी शर्त पर्यावरण है: https://github.com/weavejester/environ

अन्य अच्छा विकल्प क्लासपाथ से क्लोजर डेटा फ़ाइलों को पढ़ना है। आप अपने प्रोजेक्ट में dev-resources डीआईआर के साथ देव कॉन्फ़िगरेशन सेटिंग्स की जांच कर सकते हैं और अपने परिनियोजन टूल के साथ क्लासपाथ पर उत्पादन कॉन्फ़िगरेशन रख सकते हैं।

https://github.com/bbbates/confijulate: - मैं इस पैटर्न को लागू करने के लिए बनाया एक पुस्तकालय https://github.com/sonian/carica

+0

इसके लिए धन्यवाद, पर्यावरण बिल्कुल वही है जो मुझे चाहिए! फिर से धन्यवाद, और लीन के लिए भी, यह शानदार है –

5

मैं परिवर्तनीय वातावरण को ट्रैक करने के लिए पर्यावरण चर का उपयोग करने का बहुत शौकिया हूं। ;-)

दूसरों उन्हें -Ddb=foo विकल्पों का उपयोग कर और उन्हें ऐसा करने (System/getProperty "db")

1

Confijulate पर एक नज़र डालें: लाभ यहाँ config नेस्टेड नक्शे, आदि इस के लिए सबसे अच्छी बात Carica है साथ मनमाना Clojure मूल्यों किया जा सकता है

आप बाहरी फाइल में पासवर्ड या चाबियाँ स्टोर कर सकते हैं और इसे सिस्टम प्रॉपर्टी के माध्यम से लोड कर सकते हैं। एस 3 या डीबी से जुड़े फ़ंक्शन में, आप उसी तंत्र के माध्यम से लोड की गई कुंजी का उपयोग करके इसे डिक्रिप्ट कर सकते हैं। बस सुनिश्चित करें कि जिस फ़ाइल में आप पढ़ते हैं वह केवल वेब उपयोगकर्ता (टॉमकैट या जेबॉस या जो भी कंटेनर आप बीनस्टॉक के साथ उपयोग कर रहे हैं) द्वारा पठनीय है।

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