2011-01-18 16 views
7

मैं वसंत सुरक्षा 3.0.0 और लगातार याद रखने का उपयोग कर रहा हूं। जब सर्वर पुनरारंभ होता है और ब्राउज़र विंडो अभी भी खुला है, तो हमें लॉगिन किए बिना एप्लिकेशन का उपयोग जारी रखने में सक्षम होना चाहिए - अगर मुझे याद है तो मुझे चुना गया है।वसंत याद रखें मैं प्रक्रियाऑटोलोगिनक्यूकी

मुझे एक org.springframework.security.web.authentication.rememberme.CookieTheftException मिल रहा है: अवैध याद-मुझे टोकन (श्रृंखला/टोकन) मेल नहीं है। पिछली कुकी चोरी हमले का तात्पर्य है, जब मैं किसी सर्वर को पुनरारंभ करने के बाद एप्लिकेशन का उपयोग जारी रखने का प्रयास करता हूं। मुझे क्या पता है कि प्रक्रिया AutoLoginCookie विधि को दो बार बुलाया जाता है। मुझे यकीन नहीं है क्यों। विधि का व्यवहार स्वयं सही लगता है, यानी, डेटाबेस में टोकन अद्यतन करें और क्लाइंट में कुकी अद्यतन करें।

इस पर किसी भी मदद की सराहना की जाएगी।

धन्यवाद।

+0

क्या आपको इस समस्या का जवाब मिला है? – mmatloka

+1

यह बहुत समय पहले हुआ और मैं विवरण भूल गया। लेकिन संक्षेप में यह समस्या थी - मेरे विशेष मामले में ऐसा इसलिए था क्योंकि हम लंबे मतदान के लिए धूमकेतु का उपयोग कर रहे थे। तो प्रक्रिया AutoLoginCookie विधि लंबे मतदान और नियमित पृष्ठ लोड से एक बार बुलाया गया था। इसलिए, पहली प्रतिक्रिया प्राप्त होने से पहले डेटाबेस में कुकी बदल गई थी। दोबारा, मैं सटीक विवरण भूल जाता हूं लेकिन यह संक्षेप में था। – smk

+0

मैंने एक समान प्रश्न पोस्ट किया है लेकिन मैंने इसे अपने उत्तर पर उत्तर दिया है)। मेरे पास समाधान यहां पाया जा सकता है -> [http://stackoverflow.com/questions/13393774/invalid-remember-me-token-series-token-mismatch-implies-previous-cookie-theft/13402874#13402874] (http://stackoverflow.com/questions/13393774/invalid-remember-me-token-series-token-mismatch-implies-previous-cookie-theft/13402874#13402874) – Warner

उत्तर

1

मुझे एक ही समस्या मिल रही थी! प्रक्रियाऑटोलॉगिनकुकी को उत्तराधिकार में दो बार बुलाया जा रहा था ताकि पहली कॉल सफल हो, लेकिन दूसरी कॉल विफल हो गई क्योंकि कुकी को पहली कॉल द्वारा अपडेट किया गया है।

मेरा एकमात्र समाधान PersistentTokenBasedRememberMeServices को उप-वर्ग करना था और processAutoLoginCookie विधि को ओवरराइड करना था। मुझे ProcoAutoLoginCookie के लिए मौजूदा कोड कॉपी करना था और CookieTheftException के फेंकने पर टिप्पणी करना था।

नोट: मेरा समाधान सुरक्षा छेद खोल देगा!

यदि आप कुकी चोरी के लिए अनुमति देने में प्रसन्न हैं (मेरी प्रणाली आंतरिक रूप से उपयोग की जाती है और इसमें संवेदनशील डेटा नहीं होता है) तो यह समाधान काम करेगा।

वैकल्पिक रूप से, आप PersistentTokenBasedRememberMeServices को भी उपclass कर सकते हैं और एक और मजबूत समाधान जोड़ सकते हैं जो अभी भी कुकी चोरी अपवादों की जांच करता है लेकिन दो लगातार कॉल को processAutoLoginCookie पर करने की अनुमति देता है।

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