【问题标题】:Parsing a SAML Response object using OpenSSO使用 OpenSSO 解析 SAML 响应对象
【发布时间】:2011-04-21 18:23:47
【问题描述】:

我正在尝试做一些看起来相当简单但得到意想不到的结果的事情。我正在使用 OpenSSO 库来解析作为 XML 字符串提供的 SAML 1.1 响应。由于我有来自客户端的示例响应,因此我设置了一个简单的单元测试,只是为了验证我可以解析它,但得到以下错误:

com.sun.identity.saml.protocol.Response.parseXML(<xml string>)

...

libSAML:04/21/2011 02:16:46:983 PM EDT: Thread[main,5,main]
Assertion.parseAssertionElement:
libSAML:04/21/2011 02:16:46:984 PM EDT: Thread[main,5,main]
Assertion.parseAssertionElement: minMinorVersion = 0, maxMinorVersion = 1
libSAML:04/21/2011 02:16:46:987 PM EDT: Thread[main,5,main]
AuthenticationStatement:Wrong element Subjectincluded.

AuthenticationStatement 和 AttributeStatement 中都有 Subject 节点。

我只想解析提供的 XML,检查状态并提取 NameIdentifier。这对我来说是全新的,所以请原谅我的无知。

【问题讨论】:

    标签: java saml opensso


    【解决方案1】:

    我在 SAML 规范中找不到任何关于“Subjectincluded”元素的信息。请检查您的 XML。如果这是对 SAML 的某种扩展,我认为简单地删除该元素是安全的。

    【讨论】:

    • 我认为这是一个错字。这实际上是我所看到的,但我相信它应该是“包含主题”。如果我从 AttributeStatement 节点中删除主题,则消息不会更改,但如果我从 AuthenticationStatement 中删除它,它会告诉我“AuthenticationStatement 应该包含一个主题。”
    • 然后检查您的 XML 中是否有正确的命名空间。应该是“urn:oasis:names:tc:SAML:1.0:assertion”。如果根元素不存在,您可能需要将命名空间声明添加到根元素...
    • 示例:
    • 命名空间声明在那里,但在我的情况下它是 1.1。
    • 嗯...根据源代码预计是1.0。请尝试更换 1.1 -> 1.0
    猜你喜欢
    • 1970-01-01
    • 2012-07-07
    • 2011-08-09
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-15
    • 2021-05-19
    相关资源
    最近更新 更多