मैं this थ्रेड का जिक्र कर रहा था, और Rob Winch
(स्प्रिंग सिक्योरिटी लीड) द्वारा दूसरी अंतिम पोस्ट में, उन्होंने उल्लेख किया कि हम कर सकते हैं sessionRegisty की पहुंच है:वसंत सुरक्षा - क्या मेरे आवेदन के अंदर सत्र रजिस्ट्री प्राप्त करने का कोई तरीका है (समवर्ती फ़िल्टर को स्पष्ट करने के बिना)
<session-management>
<concurrency-control session-registry-alias="sessionRegistry"/>
</session-management>
इसलिए, मैं web.xml
में HttpSessionEventPublisher
फिल्टर रजिस्टर और मेरे <http>
खंड में ऊपर सेटिंग निर्दिष्ट। नहीं मुझे क्या करना इस जोड़ें:
<beans:bean id="sessionRegistry" class="org.springframework.security.core.session.SessionRegistryImpl" />
और मेरी कक्षा में, मुझे लगता है इस तरह sessionRegistry का एक उदाहरण इंजेक्षन:
@Autowired
private SessionRegistry sessionRegistry
इस तरह मैं एक के लिए सत्र पता लगाने के लिए कोशिश कर रहा हूँ है उपयोगकर्ता:
List<SessionInformation> userSessions = sessionRegistry.getAllSessions(username,false);
for (SessionInformation userSession : userSessions){
userSession.expireNow();
}
प्रिंसिपल उपयोगकर्ता का उपयोगकर्ता नाम है। डिबगिंग पर, sessionRegistry
चर के principals
और sessionids
चर खाली हैं। क्या मैं यहां कुछ भी गलत कर रहा हूं, या krams's blog द्वारा उल्लिखित चरणों को करने का एकमात्र तरीका है?
क्या काम नहीं करता है? – Xaerxess
@Xaerxess - सत्र रजिस्ट्री चर जो डाला गया है इसमें कोई सत्र आईडी या प्रमाणीकरण नहीं है। ध्यान दें कि मैंने सत्र रजिस्ट्री बीन को स्पष्ट रूप से परिभाषित नहीं किया है – Daud
क्या आप 'सत्र रजिस्ट्री' तक पहुंचने वाले वर्ग का कोड पोस्ट कर सकते हैं? रजिस्ट्री खाली होने पर आप कैसे जांचते हैं? – Xaerxess