SAML编组opensaml和java

时间:2014-12-30 14:18:50

标签: java saml-2.0 opensaml

我最近将opensaml依赖关系从2.5.3升级到2.6.1和xmlutil 1.3.0至1.4.1。 它编译时没有任何错误,但在运行应用程序时,我得到以下异常:

java.lang.NullPointerException
org.opensaml.xml.io.AbstractXMLObjectMarshaller.marshall(AbstractXMLObjectMarshaller.java:84)

致电代码:

final MarshallerFactory marshallerFac = SAMLUtil.getMarshallerFactory();
     final org.opensaml.xml.io.Marshaller authnStatementMarshaller = marshallerFac.getMarshaller(assertion);

     Element assertionElement = null;

     try {
        assertionElement = authnStatementMarshaller.marshall(assertion);
        try {
           // Sign assertion and query signature
           Signer.signObject(signature);
        }
        catch (final SignatureException e) {
           LOGGER.error("Fout opgetreden bij ondertekenen Assertion", e);
        }
     }

1 个答案:

答案 0 :(得分:4)

我注意到如果你没有初始化(" bootstrap")SAML配置,当你试图构造它时,你得到一个NullPointerException(相当无用,我可能会添加) SAML。

import org.opensaml.DefaultBootstrap;
import org.opensaml.xml.ConfigurationException;

try {
    DefaultBootstrap.bootstrap();
}
catch (ConfigurationException ce) {
}

上面只是一段代码来说明我在谈论的内容。你有没有忘记引导配置?必须在你做任何事之前完成。