身份验证响应属性中的日语字符将转换为问号



所以 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 使页面日语字符正确显示的示例应用程序。 :)

最新更新