簡體   English   中英

在OpenShift JBoss AS 7中更改URIEncoding

[英]Change URIEncoding in OpenShift JBoss AS 7

我正在使用OpenId模塊使用Spring Security構建測試應用程序。 我還使用jQuery OpenId插件來支持某些提供程序。

我正在使用Tomcat(版本7)測試該應用程序,經過一些故障排除后,我發現我需要為服務器指定URI編碼,以便支持憑據帶有字母和元音的用戶,例如Peñasco,Ángel等。

在Tomcat中,我只需要將此設置為tomcat-server.xml文件:

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

但是該應用程序已部署在OpenShift PaaS的JBoss AS 7磁帶中。

在這種情況下,如何放置模擬配置?

編輯:

我用這個內容添加了文件.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"

但是它不能遠程工作,我在本地服務器上使用了相同的選項,因此不起作用。

對我來說,是有幫助的添加

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"/>

在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

您也可以在standalone.xml<system-properties>部分中進行設置,但是在OpenShift上,此文件不受您的應用程序控制。 對於OpenShift應用程序,您需要通過在應用程序的啟動前掛鈎中設置JAVA_OPTS來使用這些選項啟動JBoss。 為此,請將以下內容添加到.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\""

希望這可以幫助。 如果您遇到問題,請發表評論。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM