2009-09-05 22 views
8

में सत्र आईडी कुकी, मान लीजिए कि मैं अपना स्वयं का सत्र कोड रोल कर रहा हूं, जावा में एक अद्वितीय और सुरक्षित सत्र आईडी कुकी बनाने का सही तरीका क्या है।gwt rpc

क्या मुझे अपना खुद का रोल नहीं करना चाहिए, लेकिन कुछ ऐसा पहले से ही मानकीकृत किया जा रहा है?

मैं gwt और google app-engine प्लेटफ़ॉर्म का उपयोग कर रहा हूं।

मैं ब्राउज़र/सर्वर पुनरारंभ में सत्र कैसे बना सकता हूं?

+0

आप Google ऐप इंजन पर सत्र का उपयोग कर सकते हैं। मैंने अद्यतन उत्तर में लिंक प्रदान किया है। –

+0

मैं ब्राउज़र/सर्वर पुनरारंभ में सत्र कैसे बना सकता हूं? –

+0

सत्रों को पुनरारंभ करने के लिए जारी रखने का एक तरीका है फ़ाइल स्टोर या डेटाबेस द्वारा समर्थित सत्रों के लिए। इस तरह सत्र विफलता तंत्र अधिकांश अनुप्रयोग सर्वरों में काम करते हैं। लेकिन मुझे आश्चर्य है कि आपको Google App Engine में इसकी आवश्यकता क्यों है। –

उत्तर

24

Using Servlet Sessions in GWT

दूरस्थ सेवा कार्यान्वयन वर्ग में:

String jSessionId=this.getThreadLocalRequest().getSession().getId(); 

ग्राहक कोड में:

String jSessionId=Cookies.getCookie("JSESSIONID"); 

Enabling_Sessions

appengine-web.xml

<sessions-enabled>true</sessions-enabled> 
2

नहीं, आपको अपना खुद का रोल नहीं करना चाहिए।

सत्र आईडी को क्रिप्टोग्राफिक रूप से यादृच्छिक होना चाहिए (ज्ञात स्रोतों से अनुमानित नहीं)। यह खुद को सही करना मुश्किल है।

1

आदर्श रूप से आपको अंतर्निहित ढांचे के सत्र प्रबंधन सुविधाओं पर भरोसा करना चाहिए। Servlets & जेएसपी, स्ट्रूट्स और स्प्रिंग में यह समर्थन है, जिसका आपको उपयोग करना चाहिए।

बेहद दुर्लभ मामले में कि आप अंतर्निहित सत्र प्रबंधन सुविधाओं के साथ अपना खुद का ढांचा लिख ​​रहे हैं, आप जावा.सेक्चर से शुरू कर सकते हैं। सुरक्षित रैंडम क्लास के साथ शुरू करने के लिए। बेशक, यहां चक्र को पुन: पेश न करें, टूटा सत्र प्रबंधन टूटा प्रमाणीकरण के समान है।

अद्यतन

यह देखते हुए कि आप Google App इंजिन का उपयोग कर रहे हैं, तो आप इंजन द्वारा प्रदान की सत्र प्रबंधन सुविधाओं पर भरोसा करना चाहिए। It seems that it is not switched on by default

+1

सत्र प्रबंधन जे 2 ईई स्पेक का हिस्सा है और इसे ऐप सर्वर/सर्वलेट कंटेनर द्वारा कार्यान्वित किया जाता है। इसलिए जब तक कि "आप स्वयं के ढांचे को लिखना" का अर्थ है "कच्चे HTTP प्रोटोकॉल के शीर्ष पर कोड लिखना" आपके पास हमेशा सत्र प्रबंधन पर भरोसा है। – ChssPly76

+0

हाँ, यह सही है। –

+0

वैसे, एक्सिस 1.x सिक्योररैंडम क्लास का उपयोग करके सत्र प्रबंधन को कार्यान्वित करता है। मुझे यकीन नहीं है कि उन्होंने इसे क्यों चुना है, लेकिन यह एकमात्र एकमात्र मामला है जिसे मैंने सामना किया है। –