Я уже давно бьюсь об этом и начинаю добиваться прогресса. Однако у меня возникли проблемы с преобразованием строкового представления утверждения 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 как строку, а не как файл?
[SOLVED]
здесь. Если у вас есть ответ, отметьте его зеленой галочкой слева от него - только тогда ваш вопрос будет отмечен как решенный. - person moinudin   schedule 14.01.2011