मुझे हाथ से लिखित सुरक्षा, सरल सर्वलेट-फ़िल्टर मिला है जो गैर-अधिकृत उपयोगकर्ता को उनके लॉगिन पृष्ठों पर रीडायरेक्ट नहीं करता है। लॉगिन नियंत्रक सफल प्रमाणन या उनके मुख्य पृष्ठ के बाद अनुरोधित यूआरएल पर उन्हें रीडायरेक्ट करता है। यह दृष्टिकोण ठीक काम करता है, एकमात्र नुकसान, कि मुझे उपयोगकर्ता ऑब्जेक्ट को पास करना होगा जो एचजेपी सत्र में ईजेबी बीन्स के लिए स्टैकट्रैक के माध्यम से संग्रहीत है।मुझे हाथ से लिखित सुरक्षा के खिलाफ जेएएएस का उपयोग क्यों करना चाहिए?
अब मैं कुछ कोड दोबारा लिखता हूं और स्प्रिंग-सुरक्षा का उपयोग http आधारित प्रमाणीकरण के रूप में करता हूं। यह ग्लासफ़िश जेएएएस के साथ स्वचालित रूप से एकीकृत है।
मुझे अब स्टैकट्रैक के माध्यम से उपयोगकर्ता को पास करने की आवश्यकता नहीं है, आमंत्रण sessionContext.getCallerPrincipal()
पर्याप्त है। लेकिन मुख्य वस्तु मुझे केवल उपयोगकर्ता नाम लौटाती है, उपयोगकर्ता नहीं, इसलिए मुझे उदाहरण के लिए उपयोगकर्ता आईडी की आवश्यकता है तो अतिरिक्त चयन करना होगा।
1) क्या प्रिंसिपल ऑब्जेक्ट का विस्तार करने के लिए वैसे भी है, तो यह अधिक गुणों को स्टोर कर सकता है?
2) मुझे जेएएएस या स्प्रिंग सिक्योरिटी या किसी अन्य सुरक्षा ढांचे का उपयोग क्यों करना चाहिए, क्यों न सिर्फ हाथ से लिखित सर्वलेट फ़िल्टर?
लॉगिन मॉड्यूल के अपने स्वयं के कार्यान्वयन को लिखना अधिक पोर्टेबल है क्योंकि यह अतिरिक्त सर्वर कॉन्फ़िगरेशन पर निर्भर नहीं है। जब तक आप ध्यान में रखते हैं कि आपको मैन्युअल रूप से सभी सुरक्षा भूमिकाओं को प्रबंधित करने की आवश्यकता है। –
इसके अलावा जेएएएस मॉडल मानता है कि आपका सुरक्षा मॉडल भूमिका आधारित है। यह हमेशा मामला नहीं हो सकता है। सुरक्षा मॉडल पूरी तरह से अनुमति-आधारित हो सकता है (क्योंकि भूमिका की परिभाषा कल बदल सकती है)। मैं पेज-स्तरीय सुरक्षा के लिए एक सरल सर्वलेट फ़िल्टर का उपयोग करता हूं और विधि/वर्ग स्तर की सुरक्षा के लिए सीडीआई इंटरसेप्टर का उपयोग करता हूं। –