/ / सत्र आईडी का उपयोग कर अपाचे शेरो के साथ प्रमाणित सत्र - अपाचे, सत्यापन, सत्र, शेरो

सत्र आईडी का उपयोग करके अपाचे शिरो के साथ सत्र प्रमाणीकरण - अपाचे, सत्यापन, सत्र, शिरो

मेरे पास एक सत्र आईडी कुकी है जो शेरो सुरक्षा ढांचे द्वारा बनाई गई है और इसे प्रत्येक अनुरोध में पारित किया जाता है। क्या सत्र आईडी को मान्य करने का कोई तरीका शेरो के साथ मान्य है।

मैं सत्र आईडी पास करके नीचे दिए गए कोड के साथ प्रयास कर रहा हूं।

 Subject requestedSubject = new Subject.Builder().sessionId(sessionId).buildSubject();
return !(requestedSubject.getSession(false) == null);

नीचे अपवाद हो रही है

"अपवादक्लास": "वर्ग java.lang।अवैध तर्क अपवाद", "RESTMethod": "GET", "संदेश": "SessionKey एक HTTP संगत होना चाहिए कार्यान्वयन। "," rootCausePointClass ": "Org.apache.shiro.web.session.mgt.ServletContainerSessionManager", "rootCausePointMethod": "getSession"

कुछ भी गलत है जो मैं कर रहा हूं या सत्र आईडी को मान्य करने का कोई अन्य तरीका है।

उत्तर:

उत्तर № 1 के लिए 1

आपने बहुत विस्तार नहीं दिया है, और आपका सटीक प्रश्न थोड़ा अस्पष्ट है।

शेरो सत्रों और सत्र सत्यापन का प्रबंधन करता है, यह फ्रेमवर्क में बनाया गया है, और आपको सेमिनार करना होगा कि कैसे शेरो चेक / सत्रों को मान्य करता है यांत्रिकी के साथ खुद को चिंता करने की आवश्यकता नहीं है।

एक अन्य बात जो प्रश्न से स्पष्ट नहीं है, वह है आपकी प्रौद्योगिकी स्टैक। यह एक वेब अनुप्रयोग है? क्या कोई अन्य थर्ड पार्टी लाइब्रेरी हैं, जैसे कि स्प्रिंग? हालाँकि यहाँ ए है मार्गदर्शक.

ध्यान रखें कि एक सत्र (यहां तक ​​कि एक वैध सत्र) यह संकेत नहीं है कि उपयोगकर्ता ने लॉग-इन किया है या वे प्रमाणित हैं।

वर्तमान उपयोगकर्ता को शेरो से पाने के लिए:

Subject currentUser = SecurityUtils.getSubject();

फिर आपको यह जांचना है कि क्या यह "ज्ञात" उपयोगकर्ता है, जांचें कि एक गैर-शून्य प्रिंसिपल है:

User user = (User) currentUser.getPrincipal();

एक बार फिर, आपका प्रश्न अस्पष्ट है, लेकिन मुझे आशा है कि यह आपको सही दिशा में ले जाएगा।