使用 opensaml 解组 saml 元数据扩展
Unmarshalling saml metadata extensions using opensaml
我在 saml 元数据中创建了一些扩展。我正在尝试使用 opensaml2 解组 xml。我已经创建了扩展的接口、实现 class、构建器、编组器和解组器。然后我使用 Configuration.registerObjectProvider
注册了对象提供者
Configuration.registerObjectProvider(RequestedAudiences.TYPE_NAME, new RequestedAudiencesBuilder(), new RequestedAudiencesMarshaller(), new RequestedAudiencesUnmarshaller());
当我尝试使用以下代码段获取扩展时
List<XMLObject> extensions = spssoDescriptor.getExtensions().getUnknownXMLObjects();
它returns 类型的对象
org.opensaml.xml.schema.impl.XSAnyImpl
所以现在我无法从对象中读取任何值。我想获得我创建的实际扩展实现 class 的对象。
谁能指出我做错了什么?
问题是我在创建元数据对象后注册了对象提供者。所以在创建元数据对象的时候,opensaml并不知道如何创建需要的扩展对象(RequestedAudiences对象)。在创建元数据对象之前注册对象提供者解决了这个问题。
您可以使用下面的 scala
代码来提取信息。
val dato = descriptor.getExtensions().getUnknownXMLObjects.get(0).asInstanceOf[XSAny]
println(dato.getTextContent)
我在 saml 元数据中创建了一些扩展。我正在尝试使用 opensaml2 解组 xml。我已经创建了扩展的接口、实现 class、构建器、编组器和解组器。然后我使用 Configuration.registerObjectProvider
注册了对象提供者Configuration.registerObjectProvider(RequestedAudiences.TYPE_NAME, new RequestedAudiencesBuilder(), new RequestedAudiencesMarshaller(), new RequestedAudiencesUnmarshaller());
当我尝试使用以下代码段获取扩展时
List<XMLObject> extensions = spssoDescriptor.getExtensions().getUnknownXMLObjects();
它returns 类型的对象
org.opensaml.xml.schema.impl.XSAnyImpl
所以现在我无法从对象中读取任何值。我想获得我创建的实际扩展实现 class 的对象。 谁能指出我做错了什么?
问题是我在创建元数据对象后注册了对象提供者。所以在创建元数据对象的时候,opensaml并不知道如何创建需要的扩展对象(RequestedAudiences对象)。在创建元数据对象之前注册对象提供者解决了这个问题。
您可以使用下面的 scala
代码来提取信息。
val dato = descriptor.getExtensions().getUnknownXMLObjects.get(0).asInstanceOf[XSAny]
println(dato.getTextContent)