एक नया उपयोगकर्ता 'नया खाता' फ़ॉर्म जमा करने के बाद, मैं उस उपयोगकर्ता को मैन्युअल रूप से लॉग इन करना चाहता हूं ताकि उन्हें बाद के पृष्ठ पर लॉगिन न करना पड़े।
वसंत सुरक्षा इंटरसेप्टर के माध्यम से जाने वाला सामान्य फॉर्म लॉगिन पृष्ठ ठीक काम करता है।
नए-खाता-प्रपत्र नियंत्रक में मैं एक उपयोगकर्ता नामप्रणाली बना रहा हूं।
SecurityContextHolder.getContext().setAuthentication(authentication);
उसी पृष्ठ पर मैं बाद में जाँचता हूँ कि उपयोगकर्ता के साथ लॉग इन है:
SecurityContextHolder.getContext().getAuthentication().getAuthorities();
यह प्रमाणीकरण में पहले सेट किए गए अधिकारियों को देता है। सब ठीक हैं।
लेकिन जब इसी कोड को अगले पेज पर लोड किया जाता है, तो प्रमाणीकरण टोकन सिर्फ UserAnonymous है।
मैं स्पष्ट नहीं हूं कि पिछले अनुरोध पर मैंने जो प्रमाणीकरण सेट किया था, उसे क्यों नहीं रखा। कोई विचार?
- क्या यह सत्र आईडी के साथ सही तरीके से सेट नहीं होने के कारण हो सकता है?
- क्या ऐसा कुछ है जो संभवतः किसी तरह मेरे प्रमाणीकरण को अधिलेखित कर रहा है?
- शायद मुझे प्रमाणीकरण को बचाने के लिए एक और कदम की आवश्यकता है?
- या क्या मुझे किसी भी अनुरोध के बजाय पूरे सत्र में प्रमाणीकरण की घोषणा करने की आवश्यकता है?
बस कुछ विचारों की तलाश है जो मुझे यह देखने में मदद करें कि यहां क्या हो रहा है।
SecurityContextHolder.getContext().setAuthentication(authentication)
:। यह काम करता है, और आम है, लेकिन गंभीर कार्यक्षमता की कमियां हैं जो आपको मिलेंगी यदि आप बस ऐसा करते हैं। : अधिक जानकारी के लिए, मेरे सवाल है, और जवाब को देखने के stackoverflow.com/questions/47233187/...