2013-08-08 12 views
5

मुझे पता है कि यह पहले से ही पूछा गया है, लेकिन मैं इसे काम करने में सक्षम नहीं हूं। यहां मैं पूरा करना चाहता हूं:वसंत सुरक्षा 3.2 टोकन प्रमाणीकरण

मैं एक आरईएसटी जैसी सेवा को सुरक्षित करने के लिए स्प्रिंग सुरक्षा 3.2 का उपयोग कर रहा हूं। कोई सर्वर साइड सत्र नहीं। मैं मूल ऑथ का उपयोग नहीं कर रहा हूं, क्योंकि इसका मतलब यह होगा कि मुझे क्लाइंट साइड पर कुकी में उपयोगकर्ता का पासवर्ड स्टोर करने की आवश्यकता है। अन्यथा उपयोगकर्ता को प्रत्येक पृष्ठ रीफ्रेश/चेंज के साथ लॉगिन करने की आवश्यकता होगी। एक टोकन भंडारण मुझे कम बुरा लगता है।

  1. एक वेब ग्राहक (ब्राउज़र, मोबाइल एप्लिकेशन) के लिए लॉग इन करने के लिए उपयोगकर्ता नाम और पासवर्ड के साथ "/ लॉगिन"
  2. सर्वर उपयोगकर्ता प्रमाणित करता है किसी REST- तरह यूआरएल कॉल करता है और एक टोकन ग्राहक के लिए वापस भेजता है
  3. ग्राहक टोकन संग्रहीत करता है और प्रत्येक API कॉल
  4. सर्वर के साथ HTTP अनुरोध हेडर में शामिल करता है टोकन की वैधता की जाँच करता है और भेजता है एक प्रतिक्रिया तदनुसार

मैं भी टोकन पीढ़ी भाग में अभी तक मुड़कर नहीं देखा । मुझे पता है कि यह पीछे की ओर है, लेकिन मैं टोकन सत्यापन भाग पहले लागू करना चाहता था।

मैं एक कस्टम फाइलर (सार प्रमाणीकरणप्रोसेसिंगफिल्टर के कार्यान्वयन) का उपयोग करके इसे पूरा करने की कोशिश कर रहा हूं, हालांकि मुझे इसके बारे में गलत विचार है।

इस तरह यह निर्धारित करना:

public TokenAuthenticationFilter() { 
    super("/"); 
} 

केवल बिल्कुल इसी URL के लिए फिल्टर ट्रिगर किया जाएगा। मैं कुछ नमूना कार्यान्वयन के लिए चिपक रहा हूं, जहां यह सार प्रमाणीकरण प्रसंस्करण फ़िल्टर # आवश्यकता है प्रमाणीकरण जो वाइल्डकार्ड स्वीकार नहीं करता है। मैं निश्चित रूप से उस व्यवहार को बदल सकता हूं, लेकिन यह किसी भी तरह से मुझे लगता है कि मैं गलत रास्ते पर हूं।

मैंने कस्टम प्रमाणीकरणप्रदाता को कार्यान्वित करना भी शुरू किया। शायद यह सही बात है? क्या कोई मुझे सही दिशा में धक्का दे सकता है?

+1

मैं बिल्कुल वही करने की कोशिश करता हूं .. क्या आप वसंत सुरक्षा के साथ सफल हुए? क्या आप कृपया अपने समाधान का विस्तार कर सकते हैं? – fvisticot

+0

क्या आपको कोई समाधान मिला? – sinu

उत्तर

1

मुझे लगता है कि प्री-ऑथ फ़िल्टर आपके परिदृश्य के लिए बेहतर फिट है। सार को ओवरराइड करें प्रमाणीकृत प्रसंस्करण फ़िल्टरर प्राप्त करें प्रिंसिपल और getCredentials विधियां प्राप्त करें। यदि टोकन हेडर में मौजूद नहीं है, तो GetPrincipal से शून्य वापस लौटें।

प्रवाह: में पहली बार, कोई शीर्ष लेख पारित कर दिया

  • उपयोगकर्ता लॉग, इसलिए कोई प्रमाणीकरण वस्तु securityContext में सेट, सामान्य प्रमाणीकरण प्रक्रिया यानी ExceptionTranslation फिल्टर इस प्रकार उपयोगकर्ता redirtects /लॉगिन करने के लिए फॉर्म-लॉगऑन फ़िल्टर या आपके कस्टम प्रमाणीकरण पर आधारित पृष्ठ एंटरपॉइंट
  • सफल प्रमाणीकरण के बाद, उपयोगकर्ता सुरक्षित यूआरएल अनुरोध करता है, प्री-ऑथ फ़िल्टर सुरक्षा सी में हेडर प्रमाणीकरण ऑब्जेक्ट सेट से टोकन प्राप्त करता है ऑनटेक्स्ट, यदि उपयोगकर्ता के पास पहुंच है तो उसे सुरक्षित यूआरएल
संबंधित मुद्दे