मैंने छोटे स्कैला वेब एप्लिकेशन में स्प्रिंग सुरक्षा का उपयोग किया। मैंने इसे बनाया क्योंकि मैंने स्कैला सीखना शुरू किया और मैंने पूरी जावा स्टैक का उपयोग करने की कोशिश की: स्प्रिंग एमवीसी + स्प्रिंग + स्प्रिंग सिक्योरिटी + हाइबरनेट + ब्लेज़डीएस (मैंने इस परियोजना में फ्लेक्स का इस्तेमाल फ्रंटेंड के लिए भी किया था)। अब मैं बता सकता हूं कि यह वास्तव में अच्छा और सकारात्मक अनुभव था। आम तौर पर सवाल यह है कि वसंत और हाइबरनेट के साथ कितना अच्छा स्काला एकीकृत होता है। मुझे @BeanProperty
या @BeanInfo
और इकाइयों में जावा संग्रह का उपयोग करना पड़ा।
लेकिन मुझे वसंत सुरक्षा पक्ष से किसी भी वास्तविक मुद्दे का सामना नहीं करना पड़ा है। यह उम्मीद के रूप में काम कर रहा था। मुझे स्प्रिंग एओपी के साथ केवल एक मामूली समस्या याद आ सकती है: सेवा कक्षाएं ब्लेज़डीएस के माध्यम से फ्लेक्स एप्लिकेशन में अपनी विधियां प्रकाशित कर रही थीं। मैंने उन्हें स्प्रिंग सिक्योरिटी ऑब्जेक्ट एसीएल के साथ भी सुरक्षित किया (<security:intercept-methods />
और <security:protect />
के साथ)। एओपी जादू की वजह से यह सब सामान निश्चित रूप से संभव है। इसलिए मैंने इस वार्ड स्प्रिंग एओपी के व्यवहार को देखा - यदि आपकी कक्षा कुछ इंटरफेस लागू करती है, तो यह उन्हें लागू करने के लिए जेडीके की प्रॉक्सी का उपयोग करेगी और सभी कॉल को लक्षित करने के लिए प्रतिनिधि करेगी, लेकिन यदि कक्षा किसी भी इंटरफेस को लागू नहीं करती है, तो यह आपकी कक्षा का विस्तार करने के लिए सीजीएलआईबी का उपयोग करेगी और प्रत्येक विधि कॉल प्रतिनिधि। समस्या यह है कि मेरी सार्वजनिक सेवा कक्षाएं किसी भी इंटरफेस को लागू नहीं करती हैं, लेकिन एओपी ठीक से काम नहीं कर रहा था। कारण ScalaObject
इंटरफ़ेस है जो सभी स्कैला वर्गों द्वारा कार्यान्वित किया जाता है। इसलिए मैंने इस समस्या को हल करने के लिए सभी सार्वजनिक सेवाओं के लिए नए लक्षण बनाए हैं (मुझे स्प्रिंग एओपी को कॉन्फ़िगर करने का कोई तरीका नहीं मिला है - ऐसा लगता है कि यह व्यवहार हार्डकोड किया गया है)।
तो आप देख सकते हैं कि स्काला के साथ स्प्रिंग सिक्योरिटी का उपयोग करने में कोई समस्या नहीं है। मेरा मानना है कि अपाचे शिरो का उपयोग करना भी आसान होना चाहिए क्योंकि यह पूरी तरह कंटेनर या पर्यावरण स्वतंत्र होने का दावा करता है (मैंने सुना है कि वसंत के बाहर वसंत सुरक्षा का उपयोग करना संभव है, लेकिन मैंने यह भी सुना है कि यह बहुत दर्दनाक है)। आम तौर पर स्कैला में आप जावा में जो कुछ भी कर सकते हैं उसे संग्रहीत कर सकते हैं। सवाल यह है कि कितना सुंदर/बेवकूफ/शुद्ध/साइड-इफेक्ट-फ्री परिणामस्वरूप कोड होगा।
वैसे, एक नई परियोजना है जो अपाचे शिरो के साथ लिफ्ट को एकीकृत करती है: lift-shiro। Here आप इसके बारे में small blog post भी पा सकते हैं।
उम्मीद है कि इससे मदद मिलती है।
यहां अधिक जानकारी: http://seventhings.liftweb.net/security – shellholic
उत्तर के लिए धन्यवाद, लेकिन मैं सामान्य दृष्टिकोण की भी तलाश कर रहा हूं, जो उत्तर के लिए वेब फ्रेमवर्क –