2011-10-04 24 views
5

मैं एक वेबसाइट एक विशिष्ट डोमेन जो पूरी तरह से पुनर्लेखन और आभासी मेजबान के माध्यम से अपने CouchDB यूआरएल से अलग है पर सेट है, और मैं एक बिंदु है जहां मैं _sessions एपीआई का उपयोग कर कुछ उपयोगकर्ता प्रमाणीकरण जोड़ने की जरूरत मिल गया लेकिन मुझे डर है कि मैं पुनर्लेखन के साथ यह नहीं कर सकते कर रहा हूँ:CouchDB सार्वजनिक इंटरफ़ेस प्रमाणीकरण

{ 
    "from": "auth", 
    "to": "../../../_session" 
} 

मुझे देता है:

{"error":"insecure_rewrite_rule","reason":"too many ../.. segments"} 

जो स्वीकार्य है, लेकिन अब मैं सोच रहा हूँ मैं से काम करने के लिए सत्र प्रमाणीकरण कैसे मिलेगा couchdb यूआरएल, और भी, sessi उजागर किए बिना मेरा डोमेन ऐसा लगता है कि डोमेन से संबंधित है, इसलिए यदि मैं couchdb.example.com के माध्यम से लॉगिन करता हूं तो यह mywebsite.com का उपयोग सार्वजनिक इंटरफ़ेस के रूप में करते समय काम नहीं करेगा?

धन्यवाद

पी एस। मैं बस, this post जहां httpd कॉन्फ़िग फ़ाइल है, जो काम करने के लिए लगता है पर secure_rewrites को अक्षम करके एक विकल्प नहीं है मिल गया है, हालांकि, मैं सोच रहा था कि शायद एक अच्छा तरीका नहीं हो सकता है और अगर वहाँ कुछ और है जो इस तरह के लिए आदर्श है है समस्या का

उत्तर

6

मैं secure_rewrites=false स्थापित करने के लिए सलाह देते हैं और इसके बारे में चिंता मत करो।

हम आइरिस काउच मंच में CouchDB rewrites and security के बारे में बहुत चर्चा की थी। बाद में मेरी पोस्ट को using Audit CouchDB पर भी देखें। ये हाइलाइट्स हैं:

  • secure_rewrites विकल्प आपके डेटा के लिए सुरक्षा का अंतिम स्रोत नहीं है। सबसे अच्छा, यह एक बहु परत समाधान
  • में एक परत है सुरक्षा का अंतिम स्रोत डेटाबेस में _security ऑब्जेक्ट है। तो यही वह जगह है जहां आपको अपना ध्यान केंद्रित करना चाहिए
  • Audit CouchDB टूल आपके सोफे के बारे में हर विवरण स्कैन करता है और यह आपको बताएगा कि कोई लाल झंडे मौजूद हैं या नहीं। इसे जावास्क्रिप्ट में लागू किया गया है, इसलिए यदि आपके पास नोडजेएस है, तो आप इसे चला सकते हैं; या बस स्रोत कोड पढ़ने से आपको यह पता चलता है कि यह क्या देख रहा है।
+0

वाह, बहुत बहुत शुक्रिया जेसन, यह इस तरह प्रतिक्रिया के लिए वास्तव में अच्छा लगता है:

अनुभाग default.ini की [httpd] देखें। आप की सराहना की जाती है मैं निश्चित रूप से इसका उपयोग करूँगा, फिर भी, audit_couchdb के लिए बधाई, मैंने अभी यहां स्थापित किया है और यह वास्तव में उपयोगी है। यह अब मेरी विकास प्रक्रिया का हिस्सा बन जाएगा। :) चीयर्स – zanona

+1

इसे कर्ल के माध्यम से सेट करने के लिए: curl -XPUT "$ couch/_config/httpd/secure_rewrites" -d "" false " – Motin

0

यदि आप vhost का उपयोग कर रहे हैं, /_session हैंडलर किसी भी पुनर्लेख नियम (डिफ़ॉल्ट रूप से) के बिना vhost रूट पर उपलब्ध है।

vhost_global_handlers = _utils, _uuids, _session, _oauth, _users