我在 Windows 服务器 2008 R2 上的 Domino 9.0.1 服务器前面有 Shibboleth SP 2.5 和 Apache 2.4。
这是来自 Shibboleth SP 调试日志的传入 SAML 消息的开头:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
这是来自同一日志的属性值:
<saml:AttributeValue>Mäkelä Test</saml:AttributeValue>
属性作为 HTTP 头传递给 Domino。在 Domino 形式中,我确实@GetHTTPHeader("cn")
获得了该属性值,我得到了
M├ñkel├ñ测试
在 Shibboleth SP 配置中,我没有在任何地方设置字符集,我相信它应该始终是 UTF-8。
我的 Apache 代理配置如下所示:
ServerName my.test.fi:8443
UseCanonicalName On
ProxyPass / http://my.test.fi/
我试过这些:
ProxyHTMLMeta On
RequestHeader unset Accept-Encoding
AddDefaultCharset utf-8
CharsetSourceEnc UTF-8
CharsetDefault UTF-8
在 domino 网站文档中,我将“使用 UTF-8 输出”设置为“是”,并将表单字符集设置为 UTF-8。Domino 响应标头包括:
Content-Type:text/html; charset=UTF-8
对我来说,当从 Shibbolet SP/Apache 到达 Domino 时,角色似乎已经搞砸了。任何想法如何解决这一问题?
解决方案是在 Domino 中使用 XPage。此服务器端 Javascript (SSJS) 代码正确返回斯堪的纳维亚字符: