У меня есть Shibboleth SP 2.5 с Apache 2.4 перед сервером Domino 9.0.1 на Windows server 2008 R2.
Это начало входящего сообщения SAML из журнала отладки Shibboleth SP:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
А вот значение атрибута из того же журнала:
<saml:AttributeValue>Mäkelä Test</saml:AttributeValue>
Атрибуты передаются в Domino как заголовки HTTP. В форме домино я делаю @GetHTTPHeader("cn")
чтобы получить значение этого атрибута, и я получаю
Mäkelä Test
В конфигурации 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
В документе веб-сайта домино у меня для параметра «Использовать UTF-8 для вывода» установлено значение «Да», а для набора символов формы установлено значение UTF-8. Заголовки ответа Domino включают следующее:
Content-Type:text/html; charset=UTF-8
На мой взгляд, персонажи уже перепутались, когда они приходят из Shibbolet SP / Apache в Domino. Любые идеи, как это исправить?
Решение - использовать XPage в Domino. Этот код серверного Javascript (SSJS) правильно возвращает скандинавские символы:
facesContext.getExternalContext().getRequestHeaderMap().get("cn");