У меня установлен 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>
Атрибуты передаются как заголовки HTTP в Domino. В форме Domino я делаю @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
В документе веб-сайта domino у меня для параметра «Использовать 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");