无法验证SAML标志(使用OpenSAML)

时间:2015-01-09 05:01:44

标签: saml-2.0 sign opensaml

我使用OpenSAML。我遇到了无法验证标志的问题

我收到回复后尝试验证,确定。但是当我转换为XML并解组时,它无法验证它。

我的代码

    Element responseElement = null;
    ResponseMarshaller marshaller = new ResponseMarshaller();
    try {
        responseElement = marshaller.marshall(response); //

        /*
         * SAML utility = new SAML(); Document doc =
         * utility.asDOMDocument(response); // Element target =
         * doc.getDocumentElement();
         */

        Signer.signObjects(signatures);
    } catch (Exception ex) {
        ex.printStackTrace();
    }

当我使用ResponseElement进行验证时,它可以正常工作。

我的代码将SAMLResponse转换为字符串

    String samlXmlString = XMLHelper.prettyPrintXML(responseElement);
    BasicParserPool parserPool = new BasicParserPool();
    parserPool.setNamespaceAware(true);

    Document document;
    logger.debug("Parsing...");

    document = parserPool.parse(new StringReader(samlXmlString));
    Element responseElement = document.getDocumentElement();
    logger.debug("responseElement is:\n{}", convertToString(responseElement));

    Response response;
    logger.debug("Unmarshalling...");

    UnmarshallerFactory unmarshallerFactory = Configuration.getUnmarshallerFactory();
    Unmarshaller unmarshaller = unmarshallerFactory.getUnmarshaller(responseElement);
    response = (Response) unmarshaller.unmarshall(responseElement);

    logger.debug("Successfully unmarshalled");

我使用Response来验证。它不起作用。 我该如何验证呢?

0 个答案:

没有答案