我在saml元数据中创建了一些扩展。我试图使用opensaml2解组xml。我已经创建了扩展的接口,实现类,构建器,marshaller和unmarshaller。然后我使用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
所以现在我无法从对象中读取任何值。我想获得我创建的实际扩展实现类的对象。 任何人都可以建议我做错了吗?
答案 0 :(得分:0)
问题是我在创建元数据对象后注册了对象提供程序。因此,在创建元数据对象时,opensaml不知道如何创建所需的扩展对象(RequestedAudiences对象)。在创建元数据对象之前注册对象提供程序解决了问题。
答案 1 :(得分:0)
您可以使用以下scala
代码提取信息。
val dato = descriptor.getExtensions().getUnknownXMLObjects.get(0).asInstanceOf[XSAny]
println(dato.getTextContent)