Я уже давно бился об этом и начинаю добиваться прогресса. Однако у меня возникли проблемы с преобразованием строкового представления утверждения SAML 2 (в XML) в объект утверждения.
Похоже, я получаю действительный org.w3c.dom.Document
с соответствующие данные, и, похоже, я получаю действительный SAMLObjectBuilder
от фабрики разработчиков, но когда я пытаюсь собрать их вместе, все, что я получаю, - это пустое Утверждение; тема, эмитент, время выпуска и т. д. все null
, несмотря на то, что они явно указаны в XML.
Кто-нибудь видит, что я делаю неправильно, и может ли предложить решение?
Document doc = loadXMLFromString(saml);
XMLObjectBuilderFactory builderFactory = Configuration.getBuilderFactory();
SAMLObjectBuilder assertionBuilder =
(SAMLObjectBuilder)
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 как строку вместо файла?