【问题标题】:Unmarshalling saml metadata extensions using opensaml使用 opensaml 解组 saml 元数据扩展
【发布时间】:2015-05-21 09:55:24
【问题描述】:

我在 saml 元数据中创建了一些扩展。我正在尝试使用 opensaml2 解组 xml。我已经创建了扩展的接口、实现类、构建器、编组器和解组器。然后我使用 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

所以现在我无法从对象中读取任何值。我想获取我创建的实际扩展实现类的对象。 谁能建议我做错了什么?

【问题讨论】:

    标签: metadata saml-2.0 opensaml


    【解决方案1】:

    问题是我在创建元数据对象后注册了对象提供者。所以在创建元数据对象时,opensaml 并不知道如何创建所需的扩展对象(RequestedAudiences 对象)。在创建元数据对象之前注册对象提供者解决了这个问题。

    【讨论】:

      【解决方案2】:

      您可以使用下面的scala 代码来提取信息。

      val dato = descriptor.getExtensions().getUnknownXMLObjects.get(0).asInstanceOf[XSAny]
      println(dato.getTextContent)
      

      【讨论】:

        猜你喜欢
        • 2016-09-01
        • 2016-11-25
        • 1970-01-01
        • 2015-09-12
        • 2013-11-28
        • 2019-11-15
        • 1970-01-01
        • 2012-03-14
        • 2019-05-04
        相关资源
        最近更新 更多