2012-04-13 32 views
6

में परिवर्तित करने के लिए कैसे करें मैं अपने सत्र के लिए अद्वितीय सत्र आईडी उत्पन्न करना चाहता हूं। तो मैंने यूयूआईडी का इस्तेमाल किया। यहाँ मैं क्या थाUUID मान को स्ट्रिंग

if (session == null) { 

    session = httpServletRequest.getSession(true); 
    session.setAttribute("logedin", "0"); 

    if (!httpServletRequest.isRequestedSessionIdFromCookie()) { 

     UUID sessionID = UUID.randomUUID(); 

     Cookie sessionCookie = new Cookie("JSESSIONID", "sessionID"); //problem 

} 

कुकी निर्माता दो तार स्वीकार करते हैं, मैं कैसे स्ट्रिंग के लिए मेरी UUID परिवर्तित कर सकते हैं तो यह UUID मूल्य जो अद्वितीय है मिल सकता है? धन्यवाद

+1

सर्वलेट कंटेनर पहले से ही करने की कोशिश की है करने के लिए अपने विशिष्ट आवृत्तियां सत्र id परिवर्तित कर देंगे आपके लिए एक कुकी उत्पन्न करें। इसे किसी अन्य मान के साथ ओवरराइट करने से सर्वलेट कंटेनर को आपका सत्र ढूंढने से रोका जाएगा। – gawi

+0

एचएचएमएमएम धन्यवाद। यह बहुत महत्वपूर्ण बात है कि मुझे पता नहीं है। बहुत धन्यवाद। असल में मैं क्या सोच रहा था वह है। सत्र ट्रैकिंग API आईडी को 'JSESSIONID' नाम से उत्पन्न करती है, इसलिए मैंने सोचा कि मैं केवल मान बदलता हूं। लेकिन आप कह रहे हैं कि बदलते मूल्य डिफ़ॉल्ट सत्र ट्रैकिंग को परेशान करते हैं ..... हम्म ठीक है, मैं मूल्य नहीं बदलता लेकिन मैं पूछना चाहता हूं कि क्या मैं डिफ़ॉल्ट JSESSIONID पर setMaxAge() सेट कर सकता हूं? डिफ़ॉल्ट JSESSION कुकी प्राप्त करने की तरह, इसके maxAge सेट करें और फिर addCookie का उपयोग करें। क्या मै वह कर सकता हूं? धन्यवाद – Basit

+0

यदि सत्र समाप्त होने पर नियंत्रण करने के लिए आप अधिकतम आयु को बदलना चाहते हैं, तो आपको web.xml में सत्र-कॉन्फ़िगरेशन> सत्र-टाइमआउट तत्व सेट करना चाहिए। ध्यान दें कि JSESSIONID कुकी में सत्र आईडी _only_ आवश्यक नहीं है। कुछ कंटेनर पर, सत्र आईडी से पहले अतिरिक्त जानकारी जोड़ दी जाती है। एक उदाहरण के लिए [यह] (https://www.ibm.com/developerworks/mydeveloperworks/blogs/Dougclectica/entry)/websphere_session_ids22? Lang = en देखें। यदि आप नियमित सामान कर रहे हैं तो आपको JSESSIONID कुकी को बदलना नहीं चाहिए। – gawi

उत्तर

24

इस स्ट्रिंग

String suuid = UUID.randomUUID().toString(); 
+0

Oooooops ... धन्यवाद :) – Basit

0

आप सभी जावा वस्तुओं पर toString() कॉल कर सकते हैं ...

+7

सभी जावा ऑब्जेक्ट्स पर नहीं, आपको वांछित व्यवहार मिलता है। इस मामले में, यह काम करता है क्योंकि 'toString()' विधि ओवरराइड है: http://docs.oracle.com/javase/6/docs/api/java/util/UUID.html#toString() – logoff

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