2013-01-02 14 views
5

मुझे वेब एप्लिकेशन होना चाहिए जो वास्तव में यूआई पर एक ही नेविगेशन बार में एकीकृत कुछ अलग युद्धों से युक्त है, मुझे सभी सिस्टम सुरक्षित करने की आवश्यकता है लेकिन केवल मुख्य वेब एप्लिकेशन के लिए प्रमाणीकरण है और स्वचालित प्रचार के बाद इस सुरक्षा संदर्भ के उप वेब अनुप्रयोगों के लिए। मैं वसंत सुरक्षा का उपयोग कर रहा हूं, क्या कोई मुझे सलाह के साथ मदद कर सकता है? धन्यवादकुछ वेब अनुप्रयोगों के बीच सुरक्षा संदर्भ साझा करना

+0

कृपया स्पष्ट करें - क्या आपके WARs को एकल ईएआर में पैक किया गया है? –

+0

नहीं, उसी सर्वलेट कंटेनर में इसके बिल्कुल अलग युद्ध, मुझे मुख्य एप्लिकेशन में लॉग इन करने के बाद उन्हें प्रमाणीकरण प्रसारित करने की आवश्यकता है, पहले सोचा गया कि कुकी पर सुरक्षा टोकन है लेकिन यह इतना मजबूत नहीं लगता है – Fagoter

+2

किसी भी तरह से ऐसा लगता है कि आपको सीएएस का उपयोग करना चाहिए (उस के लिए स्प्रिंग डॉक्स में देखें) –

उत्तर

5

वसंत सुरक्षा http सत्र में लॉगिन डेटा स्टोर करती है। तो मैं कोशिश करता हूं कि अनुप्रयोगों के बीच सत्र साझा करना है।

यह Single Sing On विशेषता का उपयोग करके यह संभव है (टॉमकैट में)।

लेकिन चेतावनी दी जानी चाहिए, दो अनुप्रयोगों के बीच सत्र साझा करना खतरे के बिना नहीं है। this Stack Overflow question देखें।

4

यह निम्नलिखित दृष्टिकोण से हासिल किया जा सकता है। वसंत में, SecurityContext डिफ़ॉल्ट रूप से HttpSession में संग्रहीत किया जाता है। इसके बजाय आप इसे कुछ साझा भंडार में स्टोर करने के लिए कॉन्फ़िगर कर सकते हैं।

तो, HttpSessionSecurityContextRepository के बजाय अपने SecurityContextRepository कार्यान्वयन का उपयोग करने के लिए कॉन्फ़िगरेशन बदला जाना चाहिए। एक बार कॉन्फ़िगर किए जाने पर, सुरक्षा ढांचा Repository पर दिखाई देगा जो आपके सभी वेब अनुप्रयोगों के लिए उपलब्ध है।

Repository या तो डेटाबेस या कैश्ड सर्वर हो सकता है।

संबंधित मुद्दे