2012-02-17 17 views
5

setMaxAge एक कुकी की अधिकतम आयु को नियंत्रित करना है, तो सचमुच अधिकतम आयु संभव स्थापित करने के लिए करता है, तो मेरा इरादा है तार्किक बात कर किया जाएगा:कुकी.सेटमैक्सएज (Integer.MAX_VALUE) के साथ क्या सौदा है?

cookie.setMaxAge(Integer.MAX_VALUE); 

हालांकि इस कुकी HTTP शीर्ष लेख में कोई Expires में जो परिणाम बिलकुल भी, मैं इसे वेबस्पेयर 7 पर परीक्षण कर रहा हूं। इसे सेकंड में मापने वाले 1 साल की तरह कुछ सेट करना ठीक काम करता है।

ऐसा क्यों हो रहा है?

पीएस अभी टॉमकैट 7 - इंटीजर.एमएक्स_वीआरएल परिणामों पर Max-Age=2147483647; Expires=Wed, 06-Mar-2080 21:30:32 GMT में परीक्षण किया गया है, इसलिए यह वेबस्पियर के साथ कुछ गलत होना चाहिए।

+0

http://www.javaworld.com/community/node/3673 – NINCOMPOOP

+0

हाँ, यह मेरा लेख है। लेकिन इसमें Integer.MAX_VALUE के बारे में कुछ भी नहीं है। –

+0

त्वरित परीक्षण, जैसा कि आप वेबस्पेयर 6.1 पर अपेक्षा कर रहे थे। मेरे पास वेबस्पियर 7 वातावरण नहीं है जिस पर परीक्षण किया जाए। क्या आपने अन्य समाप्ति मूल्यों का परीक्षण किया था? – dbreaux

उत्तर

3

समस्या http://www-01.ibm.com/support/docview.wss?uid=swg1PM34869 में वर्णित है। कारण एक प्रकार की सहस्राब्दी समस्या है: WAS7 कुकी के लिए अधिकतम आयु निर्धारित करने के बजाय वाई वाई, WAS6 के रूप में YYYY

+0

ग्रेट फाइंडिंग ने –

2

कुकी के लिए अधिकतम आयु निर्धारित करने के बजाय, यह सेटमैक्सएज विधि वर्तमान सर्वर दिनांक/समय में int पैरामीटर सेकंड जोड़ती है और रखती है एक कुकी के लिए इसकी समाप्ति समय के रूप में यह नई तिथि/समय मूल्य। बाद में, जब यह कुकी ब्राउज़र पर भेजी जाती है, तो इस समाप्ति तिथि की तुलना क्लाइंट दिनांक/समय से की जाती है, और यदि उसकी समाप्ति तिथि अतीत में होती है तो कुकी समाप्त हो जाती है।

इसलिए दिनांक और समय के साथ setMaxAge (int) उपयोग विधि का उपयोग करने के बजाय।

+2

को ठीक करने की कोशिश नहीं की है, क्या आपको एहसास हुआ है कि आपने पूछे गए प्रश्न का उत्तर देने के लिए @ ओलेग द्वारा लिखे गए लेख से टेक्स्ट कॉपी और पेस्ट किया है? http://www.javaworld.com/article/2073096/don-t-trust-cookie-setmaxage.html – Edd

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