में दिए गए एक्सएमएल से ओपनएसएमएल एसेशन बनाना, मैं थोड़ी देर के लिए इसके खिलाफ अपना सिर मार रहा हूं, और प्रगति करना शुरू कर रहा हूं। हालांकि, मैं एक एसएएमएल 2 एसेशन (एक्सएमएल में) के एक स्ट्रिंग प्रस्तुति को एक एसेशन ऑब्जेक्ट में परिवर्तित करने में कुछ परेशानी में भाग गया।जावा
ऐसा लगता है कि मुझे उचित डेटा के साथ वैध org.w3c.dom.Document
मिल रहा है, और मुझे लगता है कि निर्माता निर्माता से SAMLObjectBuilder<Assertion>
मान्य है, लेकिन जब मैं उन्हें एक साथ रखने की कोशिश करता हूं तो मुझे एक खाली दावा मिलता है; विषय, जारीकर्ता, जारी करने का समय और इतने पर सभी null
हैं, इन्हें स्पष्ट रूप से एक्सएमएल में सेट किया जा रहा है।
क्या कोई देखता है कि मैं क्या गलत कर रहा हूं, और समाधान का सुझाव दे सकता हूं?
Document doc = loadXMLFromString(saml);
XMLObjectBuilderFactory builderFactory = Configuration.getBuilderFactory();
SAMLObjectBuilder<Assertion> assertionBuilder =
(SAMLObjectBuilder<Assertion>)
builderFactory.getBuilder(Assertion.DEFAULT_ELEMENT_NAME);
Assertion assertion = assertionBuilder.buildObject(doc.getDocumentElement());
String nameID = assertion.getSubject().getNameID().getValue();
nameID काम में assertion.getSubject()
रिटर्न null
, अभिव्यक्ति के शेष के नाकाम रहने के।
उदाहरण मैं उपयोग कर रहा हूँ से SSTC-saml तकनीक-अवलोकन-2.0-ड्राफ्ट-03, पेज 10
ऊपर समारोह loadXMLFromString()
ज्यादातर से In Java, how do I parse XML as a String instead of a file?
हम यहां प्रश्न ['सोल्वड]' के साथ प्रश्न का नाम संपादित नहीं करते हैं। अगर आपको अपना जवाब मिल गया है, तो कृपया इसे बाईं ओर हरे रंग की टिक के साथ चिह्नित करें - आपका प्रश्न केवल तभी "हल" के रूप में चिह्नित किया जाएगा। – marcog
@marcog मैंने पहली बार कोशिश की, लेकिन 48 घंटे की ग्रेस अवधि के अंत से पहले स्वीकार किए गए मेरे उत्तर को चिह्नित नहीं किया जा सका, और समाधान के लिए मैंने जो भी खोज की थी, सोचा कि यह चारों ओर सवाल छोड़ने के लिए पर्याप्त प्रासंगिक था इसे हटाने के बजाय। –
यह बहुत अच्छा है कि आपने स्वयं जवाब पोस्ट किया है। बहुत सारे लोग बस चले जाओ। ऐसा करने के लिए दोनों प्रश्न और उत्तर के लिए +1! – marcog