Я бьюсь головой об этом некоторое время и начинаю прогрессировать.Однако я столкнулся с некоторыми проблемами при преобразовании строкового представления утверждения SAML 2 (в XML) в объект подтверждения.
Похоже, я получаю действительный org.w3c.dom.Document
с соответствующими данными, и мне кажется,получать действительные SAMLObjectBuilder<Assertion>
с фабрики строителей, но когда я пытаюсь собрать их вместе, все, что я получаю, это пустое утверждение;субъект, издатель, время выпуска и т. д. - все это null
, несмотря на то, что они четко установлены в XML.
Кто-нибудь видит, что я делаю неправильно, и может предложить решение?
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
, не используя оставшуюся часть выражения.
В качестве примера я использую полный XML из sstc-saml-tech-Overview-2.0-draft-03, стр. 10.
Функция loadXMLFromString()
выше по большей части заимствована из В Java, как мне проанализировать XML как строку вместо файла?