Разупорядочение расширений метаданных saml с помощью opensaml

Я создал несколько расширений в метаданных saml. Я пытаюсь разобрать xml с помощью opensaml2. Я создал интерфейс, класс реализации, построитель, маршаллер и демаршаллер расширения. Затем я зарегистрировал поставщиков объектов с помощью Configuration.registerObjectProvider.

Configuration.registerObjectProvider(RequestedAudiences.TYPE_NAME, new RequestedAudiencesBuilder(), new RequestedAudiencesMarshaller(), new RequestedAudiencesUnmarshaller());

Когда я пытаюсь получить расширения, используя сегмент кода ниже

List<XMLObject> extensions = spssoDescriptor.getExtensions().getUnknownXMLObjects();

Он возвращает объекты типа

org.opensaml.xml.schema.impl.XSAnyImpl

Итак, теперь я не могу прочитать какое-либо значение из объекта. Я хочу получить объект фактического класса реализации расширения, который я создал. Может ли кто-нибудь предложить, что я делаю неправильно?


person Maduranga Siriwardena    schedule 21.05.2015    source источник


Ответы (2)


Проблема заключалась в том, что я зарегистрировал поставщиков объектов после создания объекта метаданных. Таким образом, во время создания объекта метаданных opensaml не знает, как создать требуемый объект расширения (объект RequestedAudiences). Регистрация поставщиков объектов перед созданием объекта метаданных решила проблему.

person Maduranga Siriwardena    schedule 26.05.2015

Вы можете использовать приведенный ниже код scala для извлечения информации.

val dato = descriptor.getExtensions().getUnknownXMLObjects.get(0).asInstanceOf[XSAny]
println(dato.getTextContent)
person Arcesio Arias Tabares    schedule 14.10.2015