2010-10-18 19 views
5

हमने हाल ही में HTTPS का उपयोग करने के लिए हमारी लॉगिन बदला में jsessionid बचत, और हम लॉगिन के साथ समस्याओं का सामना कर रहे हैं।HTTPS लॉगिन नहीं एक कुकी

प्रवेश के बाद, उपयोगकर्ता एन्क्रिप्ट न किए गए (HTTP) पृष्ठ पर पुनः निर्देशित किया गया है। जब यह इस पृष्ठ तक पहुंचता है, तो साइट जांचती है कि उपयोगकर्ता लॉग इन है या नहीं। यह एक नया सत्र बनाता है और ऐसा लगता है कि उपयोगकर्ता लॉग इन नहीं है, और इस प्रकार हमारे उपयोगकर्ता को लॉगिन पेज पर रीडायरेक्ट किया जाता है। यदि उपयोगकर्ता फिर से लॉग इन करता है, तो यह काम करेगा।

कुकीज़ के रूप में केवल-https सेट नहीं हैं, लेकिन यह है कि वे http पृष्ठों पर काम नहीं करते है।

क्या किसी को पता है क्यों यह हो रहा हो सकता है है।

संपादित करें:

मैंने कहा जाना चाहिए था कि पेज उस लॉगिन प्रदर्शित करता है एक अलग URL पर है। (टॉमकैट इंस्टेंस चलाने वाली मशीन से एक लॉगिन पेज है, लेकिन मार्केटिंग साइट एक वर्डप्रेस इंस्टॉल पर है और एक अलग डोमेन का उपयोग करती है)।

मैं कुकी सेट करने के लिए HTTP अनुरोध पहली विधि का उपयोग नहीं कर सकता, क्योंकि डिफ़ॉल्ट इंटरनेट एक्सप्लोरर सेटिंग्स सत्र कुकी को सहेजने से रोकती हैं।

+0

आप http पृष्ठ पर एक पोस्ट पैरामीटर के रूप में सत्र सबमिट करें और यह सेटअप नए डोमेन पर सत्र हो सकता है? –

+0

ओपी ने कहा है कि वह टीएल के रूप में बंद होने वाले किसी भी उत्तर को सत्यापित करने में असमर्थ होगा। – Kev

+0

यह शक्तियां हो कि के रूप में यह एक वास्तविक और चल रही समस्या यह है कि हल करने के लिए असंभव लगता है द्वारा फिर से खोल दी जाना चाहिए। हमारे पास देवताओं की एक टीम है जो महीनों के लिए एक दिव्य समाधान की कोशिश कर रही है। टोमकैट को अपग्रेड करना काम नहीं करता क्योंकि यह इरादा व्यवहार लगता है, लेकिन यह इरादा व्यवहार बाहरी डोमेन के साथ काम करना असंभव बनाता है और यह बहुत वेब 2.0 नहीं है! –

उत्तर

1

https tomcat का उपयोग करते समय एक सुरक्षित कुकी के माध्यम से jsessionid स्थापित करता है, जिसे एक गैर-सुरक्षित कनेक्शन के माध्यम से प्रेषित नहीं किया जा सकता है। तो जब आप http पर वापस आते हैं तो सत्र खो जाता है।

वर्कअराउंड (जिसे मैंने स्वयं नहीं किया है) https पर रीडायरेक्ट करने से पहले http अनुरोध के माध्यम से सत्र स्थापित कर रहा है, और फिर गैर-सुरक्षित कुकी में प्लग करने के लिए HttpRequestWrapper में एक फ़िल्टर सेट करना प्रतीत होता है।

मैं इस बारे में ज्यादा पता नहीं है, लेकिन यहां संदर्भ के एक जोड़े हैं:

+0

मुझे आश्चर्य है कि यह आपके लिए क्यों काम करता है जब उपयोगकर्ता दूसरी बार लॉग इन करता है। – christian

+0

क्योंकि रीडायरेक्ट में से एक HTTP (गैर-सुरक्षित) पृष्ठ पर जाता है। – partkyle

+0

यह काम करेगा, लेकिन समस्या यह है कि हमारी मार्केटिंग साइट एक अलग यूआरएल पर है, जो किसी अन्य डोमेन से कुकी सेट करने से इंटरनेट एक्सप्लोरर (डिफ़ॉल्ट सेटिंग्स के साथ) पर रोकती है। क्या आपके पास इसके बारे में कोई विचार है? – partkyle

3

हमने अपने ऐप के साथ इस समस्या है। हम https के माध्यम से लॉग इन करने का एक समान व्यवहार चाहते थे, फिर एक http पृष्ठ पर रीडायरेक्ट करना चाहते थे।

मुद्दा यह है कि जब बिलाव https के तहत सत्र बनाता है, यह एक सुरक्षित कुकी जो http में पढ़ा नहीं जा सकता बनाता है। ध्यान दें कि यह टॉमकैट में एक बग के रूप में दायर हो रहा है और "बग नहीं" के रूप में चिह्नित हो रहा है। जब सत्र कुकी एसएसएल मोड में बनाया जा रहा है "एक तरह से बिलाव में सत्र बनाए रखने के लिए, है:

समाधान हम समाप्त हो गया इस मंच http://forum.java.sun.com/thread.jspa?threadID=197150&start=0

मंच धागे से हवाला देते हुए में संदेश पर आधारित है जब सुरक्षित कुकी बन रही है, तो गैर-सुरक्षित कुकी बनाकर ब्राउज़र को ट्रिक करने के लिए। " यह एक फ़िल्टर के माध्यम से पूरा किया जाता है जो अनुरोध को लपेटता है और request.getSession() को ओवरराइड करता है। यह हमारे लिए बहुत अच्छा काम किया है।

एक साइड नोट के रूप में, एक https से http पृष्ठ पर रीडायरेक्ट करने से इंटरनेट एक्सप्लोरर के कुछ संस्करणों में एक चेतावनी संदेश पॉप अप होगा "आप सुरक्षित होने वाले कनेक्शन पर रीडायरेक्ट होने वाले हैं।" इससे बचने का एकमात्र तरीका मेटा रीफ्रेश टैग के साथ पुनर्निर्देशन करना है। विशेष रूप से, मूल https अनुरोध से एक खाली पृष्ठ को एक मेटा टैग के साथ वापस करें जो http पृष्ठ पर रीफ्रेश हो। यह कोड को थोड़ा अधिक गठबंधन करने के खर्च पर चेतावनी संदेश से बचाता है।

(मैं सिर्फ देखा सलाह यहाँ से कुछ पहले के एक जवाब की पुनरावृत्ति है - मैं माफी माँगता हूँ, लेकिन वैसे भी पोस्ट करेंगे, क्योंकि यह प्रत्यक्ष अनुभव से है)।

संपादित करें: मैं अपनी टिप्पणी में देखना आपके पास दो डोमेन है, जो कुकीज़ के उपयोग को पेचीदा हो। क्या आप प्रॉक्सी या वेब सर्वर जैसे अपाचे जैसे अंतिम उपयोगकर्ताओं को केवल एक डोमेन पेश करने के लिए उपयोग कर सकते हैं?

+0

उल्लेख मंच धागा के नए URL https://forums.oracle.com/forums/thread.jspa?threadID=1394970 हो रहा है – ivant

0

यदि आपने यह सुरक्षित-केवल झंडा बंद है, और है कि पहले कुकी सही ढंग से गिरा दिया जा रहा है - मुझे लगता है कि होगा एक पथ मुद्दा जो फिर से प्रस्तुत किया जा रहा से कुकी रोक रहा है हो सकता है कि।

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