2011-06-25 13 views
12

का उपयोग कर जेबॉस 6 की सत्र सुरक्षा सुविधा के साथ समस्या हमने जेबॉस 5 से जेबॉस 6 तक अपना आवेदन माइग्रेट किया और इसके मुख्य कारणों में से एक सर्वलेट 3.0 की नई सुविधाओं का उपयोग करना है। जेबॉस 6 और सर्वलेट 3.0 की एक नई सुविधा के अलावा सब कुछ ठीक काम करता है: सत्र कुकी को केवल सुरक्षित चैनल के माध्यम से स्थानांतरित करने के लिए सेट किया जाता है भले ही अनुरोध सादे HTTP के माध्यम से किया गया हो। यह हमारे लिए एक बहुत ही महत्वपूर्ण सुरक्षा सुविधा है और web.xml मेंसर्वलेट 3.0

<secure>true</secure> 

जोड़कर हासिल की है। यह हमारे web.xml का हिस्सा है:

<session-config> 
<session-timeout>25</session-timeout> 
<cookie-config> 
    <http-only>true</http-only> 
    <secure>true</secure> 
</cookie-config> 
<tracking-mode>COOKIE</tracking-mode> 

जब हम

<secure>true</secure> 

सब कुछ ठीक काम करता है हटा दें। जब यह वहां होता है, तो एक सुरक्षित पृष्ठ (HTTPS) या असुरक्षित पृष्ठ (HTTP) में होने पर भी प्रत्येक अनुरोध के लिए जेनरेशन किया जाता है। साथ ही, लॉग इन सुरक्षित क्रेडेंशियल्स के साथ लॉगिन के बाद से काम नहीं करता है क्योंकि उपयोगकर्ता को लॉगिन पेज पर रीडायरेक्ट किया जाता है।

मुझे लगता है कि यह टॉमकैट 7 के साथ भी एक मुद्दा हो सकता है क्योंकि यह सर्वलेट 3.0 spec का भी उपयोग करता है। कोई भी सलाह काफी सराही जाएगी।

सादर

+3

मुझे माफ कर दो से Offtopic, लेकिन IMHO JBoss के रूप में 6 लगभग के रूप में गाड़ी के रूप में 5. सावधान रहें। स्थिति 'बंद' स्थिति के साथ बस जेआईआरए टिकट देखें और 'ठीक नहीं होगा'। जेबॉस एएस 7 क्यों नहीं? –

+2

@GrzesiekD आपकी टिप्पणी के लिए धन्यवाद। हम वास्तव में 7 पर माइग्रेट हुए हैं। यह सवाल अब लगभग 2 साल पुराना है। – Alex

+0

हां, आप सही हैं। मैंने टिप्पणी पोस्ट करने के बाद यह देखा। मी culpa। –

उत्तर

2

HTTP Specification के अनुसार:

सुरक्षित

वैकल्पिक। सिक्योर एट्रिब्यूट (बिना मूल्य के) उपयोगकर्ता को एजेंट को केवल 0 (सर्वर से संपर्क करने के लिए केवल इस (कुकी निर्दिष्ट) सुरक्षित साधनों का उपयोग करने के लिए निर्देशित करता है जब भी यह कुकी वापस भेजता है।

उपयोगकर्ता एजेंट (संभवतः उपयोगकर्ता के नियंत्रण में) निर्धारित कर सकते हैं सुरक्षा का स्तर क्या यह "सुरक्षित" कुकीज़ के लिए उपयुक्त माना जाता है। सिक्योर एट्रिब्यूट को सर्वर से उपयोगकर्ता एजेंट को सुरक्षा सलाह माना जाना चाहिए, यह दर्शाता है कि यह कुकी सामग्री की सुरक्षा के लिए सत्र की रुचि में है।

इसका मतलब यह है कि विनिर्देशन "सुरक्षित" परिभाषित करने के लिए ब्राउज़र (उपयोगकर्ता एजेंट) को खोलता है।

Secureweb.xml में तत्व HTTP Cookie Secure property के लिए एक संदर्भ है, और आप अपने ब्राउज़र के डीबग टूल के साथ उस मान को ट्रैक कर सकते हैं।

यदि संचार "सुरक्षित" नहीं है, तो ब्राउज़र निम्न अनुरोधों पर प्राप्त कुकी को सर्वर पर नहीं भेजेगा।

समस्या जेबॉस हमेशा नई कुकीज़ वापस नहीं कर रही है, लेकिन ब्राउज़र जो इसे वापस नहीं भेज रहा है क्योंकि संप्रेषण असुरक्षित है। जेबॉस फिर हर अनुरोध के लिए एक नया सत्र बनाता है।

यह बहुत स्पष्ट है कि गैर-एन्क्रिप्टेड संचार (HTTPS नहीं) के लिए ब्राउज़र कुकी नहीं भेजेगा, यह उम्मीद है क्योंकि आप कुकी को secure = true के रूप में चिह्नित कर रहे हैं।

लेकिन, भले ही आप HTTPS का उपयोग करके, "सुरक्षित" कर रहे हैं, सुरक्षा के ब्राउज़र अवधारणा के लिए रिश्तेदार है उदाहरण के लिए:

  • प्रमाणपत्र की समय सीमा समाप्त किया जा सकता है
  • प्रमाणपत्र आत्म है
  • पर हस्ताक्षर किए आप एक होस्ट नाम एक है जो प्रमाण पत्र पर हस्ताक्षर किए से अलग प्रयोग कर रहे हैं

ये और अन्य सुरक्षा समस्याएं टीएलएस का उपयोग कर हो सकती हैं, जिसका अर्थ है संचार सुरक्षित नहीं है।

समस्या अपने SSL/TLS या कुकी विन्यास, जिसका अर्थ है आप जांच करने के लिए आप क्या किया और समस्या Isole किया है के साथ होना चाहिए। मुझे नहीं लगता कि जेबॉस या जेबॉसवेब (टॉमकैट 6 कांटा) में कोई भी बग है, और यह सुनिश्चित करने के लिए कि यह एक विनिर्देश त्रुटि नहीं है।

मैं TLS के साथ और अपने web.xml विन्यास के साथ एक JBoss 6.1.0 अंतिम कॉन्फ़िगर करने में सक्षम था, और सब कुछ उम्मीद के रूप में काम किया।

मैं आपके विन्यास, ब्राउज़र डिबग और अलर्ट की दोबारा जांच करने का सुझाव।

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