所以 Spring Security Saml 示例应用程序中的身份验证响应如下所示(属性值为问号):
<saml2:Assertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" ID="_670fb4839b61c1398a1acb39e56ee5e6" ..>
<saml2:AttributeStatement>
<saml2:Attribute FriendlyName="userName" Name="urn:com.example:userName"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
<saml2:AttributeValue>???????</saml2:AttributeValue>
</saml2:Attribute>
</saml2:Assertion>
我正在使用 Shibboleth 作为 IdP,在 IdP 的日志中,我看到身份验证响应 xml(加密之前)包含实际值,而不是问号。
知道如何正确阅读它们吗?或者检查他们在哪里被打乱。
更新 #1 (2016-03-03)
我暂时禁用了 saml 断言的加密,分析了 IdP 和 SP 之间的 HTTP 流量,我看到日语字符在身份验证响应中正常到达浏览器。这证明 Spring 安全 Saml 示例无法正确解码/显示它们。我会继续寻找解决这个问题的方法。
我所要做的就是添加
<%@ page contentType="text/html; charset=UTF-8" %>
索引.jsp的春季安全 Saml 使页面日语字符正确显示的示例应用程序。 :)