Изменить URIEncoding в OpenShift JBoss AS 7

Я создаю тестовое приложение с Spring Security, используя модуль OpenId. Я также использую плагин jQuery OpenId для поддержки некоторых поставщиков.

Я тестирую приложение с Tomcat (версия 7), и после небольшого устранения неполадок я обнаружил, что мне нужно указать кодировку URI для сервера, чтобы поддерживать пользователей, чьи учетные данные имеют буквы с наклоном и гласные, например. Пеньяско, Анхель и др.

В Tomcat мне просто нужно установить это в файл tomcat-server.xml:

<Connector URIEncoding="UTF-8" SSLEnabled="true" .../>

Но приложение развертывается в картридже JBoss AS 7 на OpenShift PaaS.

Как в этом случае поставить аналоговую конфигурацию?

РЕДАКТИРОВАТЬ:

Я добавил файл .openshift / action_hooks / pre_start_jbossas-7 с таким содержимым:

#!/bin/bash

# Need to set URI encoding to UTF-8 because of Spring Security OpenID module needs it for tilded letters e.g. ñ, Á

export JAVA_OPTS=" -Dorg.apache.catalina.connector.URI_ENCODING=\"UTF-8\" -Dorg.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING=true"

Но это не работает удаленно, я использовал те же параметры с локальным сервером, и это не работает.


person ElderMael    schedule 16.01.2013    source источник


Ответы (2)


В JBoss AS7 вы можете настроить эту функциональность, используя системные свойства:

-Dorg.apache.catalina.connector.URI_ENCODING="UTF-8"
-Dorg.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING="true"

Для справки см.: https://community.jboss.org/message/643825#643825

Вы также можете установить их в разделе <system-properties> файла standalone.xml, но в OpenShift этот файл не контролируется вашим приложением. Для приложения OpenShift вам нужно будет запустить JBoss с этими параметрами, установив JAVA_OPTS в обработчике перед запуском вашего приложения. Для этого добавьте в файл .openshift/action-hooks/pre_start_jbossas-7 следующее:

export JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.connector.URI_ENCODING=\"UTF-8\" \
                  -Dorg.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING=\"true\""

Надеюсь это поможет. Пожалуйста, оставьте комментарий, если у вас возникнут проблемы.

person Paul Morie    schedule 16.01.2013
comment
Документация Openshift для хуков действий openshift.github.io/documentation/ - person Enginer; 20.01.2014

Для меня было полезно добавить

URIEncoding="UTF-8"

в .openshift\config\server.xml в

<Connector address="${OPENSHIFT_JBOSSEWS_IP}"
           port="${OPENSHIFT_JBOSSEWS_HTTP_PORT}"
           protocol="HTTP/1.1"
           URIEncoding="UTF-8"
           connectionTimeout="20000"
           redirectPort="8443"/>
person Enginer    schedule 19.01.2014