【问题标题】:OpenSAML 3 unmarshaller is nullOpenSAML 3 解组器为空
【发布时间】:2016-11-09 13:42:25
【问题描述】:

您好,我目前正在将应用程序移植到 opensaml3 并遇到以下问题:

InitializationService.initialize();
...
Unmarshaller unmarshaller = Configuration.getUnmarshallerFactory().getUnmarshaller(qName);

我已经用初始化函数替换了 opensaml2 和之前的 DefaultBootstrap。工厂仍然将我作为编组员归还给我。 知道这里出了什么问题吗?

这是初始化进度的输出:

[main] INFO org.opensaml.core.config.InitializationService - Initializing OpenSAML using the Java Services API
[main] INFO org.opensaml.xmlsec.algorithm.AlgorithmRegistry - Algorithm failed runtime support check, will not be usable: http://www.w3.org/2001/04/xmlenc#ripemd160
[main] INFO org.opensaml.xmlsec.algorithm.AlgorithmRegistry - Algorithm failed runtime support check, will not be usable: http://www.w3.org/2001/04/xmldsig-more#hmac-ripemd160
[main] INFO org.opensaml.xmlsec.algorithm.AlgorithmRegistry - Algorithm failed runtime support check, will not be usable: http://www.w3.org/2001/04/xmldsig-more#rsa-ripemd160

【问题讨论】:

    标签: java unmarshalling opensaml


    【解决方案1】:

    我假设您使用的是 opensaml v3 所以你应该使用 XMLObjectProviderRegistrySupport 类创建 UnmarshallerFactory 对象,这样它工作得很好

    UnmarshallerFactory umFactory=XMLObjectProviderRegistrySupport.getUnmarshallerFactory();
        Unmarshaller unmarshaller=umFactory.getUnmarshaller(element);
    

    【讨论】:

      【解决方案2】:

      此错误是由于您使用的 JCE 实现缺乏算法支持。即使您使用 BouncyCastle,某些算法似乎也不受支持。除非您使用这些算法,否则无需担心。将 JCE 无限强度管辖权政策 jar 安装到 jre 将解决此问题。
      也请参考:Decrypting encrypted assertion using SAML 2.0 in java using OpenSAML

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-24
        • 2020-01-01
        • 2015-09-12
        • 1970-01-01
        相关资源
        最近更新 更多