对于我的项目,我需要向用户显示SAML响应的加密和解密版本。
目前,Spring SAML示例应用程序显示加密(即原始)SAML响应,但我不确定如何在解密所有元素(NameID,断言和其他元素)时显示相同的响应。
我知道Spring SAML示例应用程序以表格格式显示断言,但是我需要显示整个解密的'包含所有标记和属性的XML SAML响应。
注意我正在使用SP部分,并且IDP配置为发送带有加密属性和NameID的加密SAML响应。
感谢任何帮助。
答案 0 :(得分:1)
Part 9.5 of the manual可以帮到你。
9.5身份验证断言
用于对用户进行身份验证的断言存储在SAMLCredential中 属性authenticationAssertion下的对象。默认为原始版本 断言的内容(DOM)被丢弃,系统只保留一个 unmarshalled版本,可能与原版略有不同, 例如在白色空间。为了指示Spring SAML保持 断言以原始形式(保持其DOM)设置属性releaseDOM 在bean WebSSOProfileConsumerImpl上为false。
可以使用以下调用将断言序列化为String:
XMLHelper.nodeToString(SAMLUtil.marshallMessage(credential.getAuthenticationAssertion()))