[
https://issues.jboss.org/browse/WFLY-8641?page=com.atlassian.jira.plugin....
]
Markus Stier updated WFLY-8641:
-------------------------------
Steps to Reproduce:
Undertow configuration (relevant parts only):
{code}
<subsystem xmlns="urn:jboss:domain:undertow:3.1">
<buffer-cache name="default"/>
<server name="default-server">
<http-listener name="default" socket-binding="http"
redirect-socket="https" enable-http2="true"/>
<https-listener name="https" socket-binding="https"
security-realm="ApplicationRealm" enable-http2="true"/>
<host name="default-host" alias="localhost,
home">
<access-log pattern="Def: %h %t %v "%r" %s
" use-server-log="true"/>
<filter-ref name="to-query0"
predicate="regex('^/?$') and equals(%{LOCAL_SERVER_NAME},
'home:8180')"/>
</host>
</server>
<filters>
<rewrite name="to-query0"
target="/somepath?param=1234"/>
<expression-filter name="to-query1"
expression="rewrite('/somepath?param=1234')"/>
<expression-filter name="to-query2"
expression="rewrite('/somepath'); set(attribute='%{q,param}',
value='1234')"/>
<expression-filter name="to-query3"
expression="rewrite('/somepath'); set(attribute='%{QUERY_STRING}',
value='param=1234')"/>
<expression-filter name="to-query4"
expression="set(attribute='%{RELATIVE_PATH}', value='/somepath');
set(attribute='%{QUERY_STRING}', value='param=1234')"/>
</filters>
</subsystem>
{code}
Results of the different filters:
{code}
// erroneous
to-query0: /somepath?param=1234??param=1234
to-query1: /somepath?param=1234??param=1234
to-query2: /somepath
// as expected
to-query3: /somepath?param=1234
to-query4: /somepath?param=1234
{code}
was:
Undertow configuration (relevant parts only):
{code}
<subsystem xmlns="urn:jboss:domain:undertow:3.1">
<buffer-cache name="default"/>
<server name="default-server">
<http-listener name="default" socket-binding="http"
redirect-socket="https" enable-http2="true"/>
<https-listener name="https" socket-binding="https"
security-realm="ApplicationRealm" enable-http2="true"/>
<host name="default-host" alias="localhost, documents,
home, eaptest.rssystem.de">
<access-log pattern="Def: %h %t %v "%r" %s
" use-server-log="true"/>
<filter-ref name="to-query0"
predicate="regex('^/?$') and equals(%{LOCAL_SERVER_NAME},
'home:8180')"/>
</host>
</server>
<filters>
<rewrite name="to-query0"
target="/somepath?param=1234"/>
<expression-filter name="to-query1"
expression="rewrite('/somepath?param=1234')"/>
<expression-filter name="to-query2"
expression="rewrite('/somepath'); set(attribute='%{q,param}',
value='1234')"/>
<expression-filter name="to-query3"
expression="rewrite('/somepath'); set(attribute='%{QUERY_STRING}',
value='param=1234')"/>
<expression-filter name="to-query4"
expression="set(attribute='%{RELATIVE_PATH}', value='/somepath');
set(attribute='%{QUERY_STRING}', value='param=1234')"/>
</filters>
</subsystem>
{code}
Results of the different filters:
{code}
// erroneous
to-query0: /somepath?param=1234??param=1234
to-query1: /somepath?param=1234??param=1234
to-query2: /somepath
// as expected
to-query3: /somepath?param=1234
to-query4: /somepath?param=1234
{code}
rewrite handler produces invalid URLs when used with query part
---------------------------------------------------------------
Key: WFLY-8641
URL:
https://issues.jboss.org/browse/WFLY-8641
Project: WildFly
Issue Type: Bug
Components: Web (Undertow)
Affects Versions: 10.1.0.Final
Environment: * Windows 10
* Wildfly 10.1.0 Final
Reporter: Markus Stier
Assignee: Stuart Douglas
Context:
a request of the form "http://home:8180/" should be rewritten to
"http://home:8180/somepath?param=1234"
Problem:
The rewrite handler produces URLs which contain duplicated query parts and question
marks. See excerpt from access log below.
{code}
[26/Apr/2017:09:26:09 +0200] home:8180 "GET /somepath?param=1234??param=1234
HTTP/1.1" 404
{code}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)