2011-02-08 8 views
18

एक सर्वलेट सत्र के लिए टोमकैट द्वारा भेजी गई JSESSIONID कुकी के लिए समाप्ति तिथि सेट करने का सबसे अच्छा तरीका क्या है?JSESSIONID कुकी टॉमकैट में समाप्ति तिथि के साथ

डिफ़ॉल्ट रूप से, कुकी की समाप्ति तिथि 'सत्र' प्रतीत होती है, जिसका अर्थ है कि जैसे ही ब्राउज़र पुनरारंभ होता है, क्लाइंट में सत्र गायब हो जाता है। लेकिन ब्राउज़र को पुनरारंभ करने के बाद भी, मैं 12h के लिए इसे खोलना चाहता हूं (और तब सर्वर में सत्र टाइमआउट को तदनुसार कॉन्फ़िगर करेगा)।

क्या टोमकैट के भीतर समाप्ति तिथि सेट करने का कोई तरीका है, उदा। कुछ विन्यास विकल्प या एक्सटेंशन मॉड्यूल का उपयोग कर? या एक सर्वलेट फ़िल्टर का उपयोग कर JSESSIONID के लिए एक समाप्ति तिथि सेट करने का एक विश्वसनीय तरीका है?

<session-config> 
    <session-timeout>720</session-timeout> 
</session-config> 

बिलाव डिफ़ॉल्ट रूप से कॉन्फ़िगर किया गया है सत्र serialise करने के लिए इतना है कि वे ऐप पुन: प्रारंभ जीवित रहने:

+0

हाय टिम, मैं एक समान समस्या में फंस गया हूँ। आप जिस समाधान को चुनने की कोशिश कर रहे थे उसमें आप किस समाधान का चुनाव करते थे और सफल रहे, कृपया मदद करें! – Ashish

उत्तर

51

मैं जानता हूँ कि यह एक पुराने सवाल है, लेकिन अगर किसी और को इस जानकारी की तलाश में है:

सर्वलेट 3.0 में, यह बस web.xml में निर्दिष्ट किया जा सकता:

<session-config> 
    <session-timeout>525600</session-timeout> 
    <cookie-config> 
     <max-age>31536000</max-age> 
    </cookie-config> 
</session-config> 
+0

मैं था। धन्यवाद। –

+0

यूप, यह साबित करता है कि किसी प्रश्न पर नई जानकारी जोड़ने में देर हो चुकी है, जब तक कि यह अच्छी जानकारी हो! धन्यवाद, आपने मेरी मदद की। –

+2

फिर से कुछ देर की जानकारी, लेकिन fwiw, सत्र-टाइमआउट मिनटों में है, सेकंड में अधिकतम आयु! –

-2

आप सत्र, 12 घंटे के बाद समाप्त हो और सर्वर के पुनरारंभ जीवित रहने के लिए अपने web.xml में जोड़ना चाहते हैं। http://tomcat.apache.org/tomcat-5.5-doc/config/manager.html#Restart%20Persistence

+5

दुर्भाग्य से का एकमात्र प्रभाव यह है कि सर्वर 12h के लिए सत्र संग्रहीत करता है। हालांकि ब्राउज़र में कुकी अभी भी समाप्ति तिथि के बिना सेट है, और जैसे ही ब्राउज़र बंद हो जाता है, इस प्रकार गायब हो जाता है। –

1

मुझे नहीं लगता कि टॉमकैट कोड को बदले बिना आप जो करना चाहते हैं, करना संभव है।

ध्यान दें कि यह एक बुरा साइड इफेक्ट हो सकता है: यदि कोई उपयोगकर्ता सत्र शुरू करता है और बारह घंटे के लिए सक्रिय रहता है, तो उसके सत्र टाइमआउट को तदनुसार अपडेट किया जाएगा (टाइमआउट प्रत्येक अनुरोध पर अपडेट किया जाएगा), लेकिन इसकी कुकी जीती टी नहीं, और उपयोगकर्ता 12 घंटे के बाद अपना सत्र खो देंगे, भले ही वह इस समय सक्रिय हो।