JAAS

2012-10-08 21 views
6

मैं प्रोग्राम के कि (छीन अपवाद हैंडलिंग) की तरह एक उपयोगकर्ता में लॉग इन करके एक अलग प्रमाणीकरण के तहत JBoss कंटेनर के अंदर कोड को चलाने के लिए कोशिश कर रहा हूँ के माध्यम से प्रोग्राम के रूप में एक उपयोगकर्ता लॉगिन LoginModule सफल था) लेकिन Subject.doAs() नए विषय को EJBContext से संबद्ध नहीं करता है। run()-कोड में कोड अभी भी पुराने उपयोगकर्ता के प्रिंसिपल को EJBContext से प्राप्त करता है।JAAS

मैं पुन: प्राप्त करने उपयोगकर्ता के प्रवेश लेकिन का एक और तरीका परीक्षण किया यहाँ एक ही व्यवहार:

Subject caller = (Subject) PolicyContext.getContext("javax.security.auth.Subject.container"); 

कोई भी विचार?

उत्तर

2

कौन सा LoginModule क्या आप अभी उपयोग करते हैं? जेबॉस 6.1 में आपको कंटेनर में प्रमाणित करने के लिए ClientLoginModule का उपयोग करना पड़ा था।

+0

हाँ! यही तो बात है। मैंने ClientLoginModule जोड़ा और यह काम किया। – roehrijn

0

मेरी समझ यह है कि वर्तमान में यह जेबॉस एएस 7.1 द्वारा समर्थित नहीं है। this thread

देखें संपादित

मैं यहाँ क्या लिखा है गलत है, धागा केवल ग्राहक के पक्ष लॉगिन करने के लिए (एक JBoss के बाहर) लागू होता है।

+0

यह समर्थित है। ऊपर जवाब देखें। – roehrijn

+0

आह, हाँ, यह अलग-अलग पक्ष लॉगिन है, मेरा बुरा। –

+0

नहीं, उत्तर सही है। मेरा कोड LogientLoginmodule के साथ लॉगिन मॉड्यूल-स्टैक में काम करता है। – roehrijn