我正在将一些SAML1 SSO代码升级到SAML2。这并不是一个巨大的差异,我的代码在本地服务器上运行,具有与实际服务器相同的配置(jrun /多个部署,CF7)。
虽然我的代码在本地运行良好,但在它抛出的服务器上: 元素“samlp:Response”的前缀“samlp”未绑定。我把那个令人讨厌的页面剥离到那条线,这似乎是砖墙。我已经尝试删除命名空间,但是如果你知道SAML规范只是带有命名空间的RIDDLED。
<cfscript>
xmlResponse = trim(form.SAMLResponse);
docElement= XmlParse(variables.xmlResponse);
</cfscript>
将XML剥离到重要位。这仍然给出了错误 -
<samlp:Response ID="_74747ca7-7188-45c0-85a0-30177d868923"
Version="2.0"
IssueInstant="2013-03-21T11:26:59.320Z"
Consent="urn:oasis:names:tc:SAML:2.0:consent:unspecified"
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
>
<Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">http://test.com/trust</Issuer>
<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
</samlp:Status>
</samlp:Response>
我完全不知所措。任何想法,伙计们?