2009-10-20 14 views
10

मेरी वेब सेवा में मुझे कॉलर की आईडी लॉग करने की आवश्यकता है, लेकिन wsContext.getUserPrincipal() पासवर्ड शून्य प्रमाणीकरण के साथ WS-Security का उपयोग करके प्रमाणीकृत किए जाने के बावजूद शून्य हो जाता है। JAX-WS 2.1 WSContext.getUserPrincipal() के लिए JavaDocs के अनुसार उपयोगकर्ता को प्रमाणीकृत नहीं किया गया है, तो केवल शून्य वापस करना चाहिए।WSContext.getUserPrincipal() पासवर्ड डाइजेस्ट प्रमाणीकरण के लिए शून्य देता है

क्या मुझे उपयोगकर्ता प्रिंसिपल को WSContext में सेट करने के लिए सुरक्षा हैंडलर में कुछ करना है? दस्तावेज़ यह इंगित करते हैं कि यह स्वचालित रूप से किया जाता है।

मैं मेट्रो 1.1 स्टैक (1.1.5 मुझे लगता है) जैम-डब्ल्यूएस 2.1.3 टोमकैट पर स्टैक के साथ उपयोग कर रहा हूं।

+0

मुझे आश्चर्य है कि यह अब काम कर रहा है या नहीं। मेरी पिछली परियोजनाओं में से एक में हमने WSContext.getUser प्रिंसिपल() का उपयोग किया और यह काम कर रहा था। हालांकि हम HTTP मूल प्रमाणीकरण कर रहे थे। –

+0

मेट्रो 1.1 काफी पुराना है, शायद मेट्रो 1.4 समस्या हल करता है। दूसरी तरफ, क्या आप यहां अपने सभी WsContext डंप को जोड़ सकते हैं? – korifey

उत्तर

1

wsContext.getMessageContext()। EntrySet() पर मानने की कोशिश करें और मान प्रदर्शित करते हैं, कभी-कभी वे वहां होते हैं लेकिन किसी कारण से getUserPrincipal() विधि द्वारा पुनर्प्राप्त नहीं किया जा सकता है।

इस मामले में बस आपको सीधे वहां से प्रिंसिपल ले जाएं और भविष्य में एक टिप्पणी छोड़ दें कि यह बहुत पोर्टेबल नहीं है।

+0

+1 "भविष्य में एक टिप्पणी छोड़ दो ..." –

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