Daniel created CXF-6015:
---------------------------

             Summary: Path parameters containing semicolon are truncated due to 
missing encoding
                 Key: CXF-6015
                 URL: https://issues.apache.org/jira/browse/CXF-6015
             Project: CXF
          Issue Type: Bug
          Components: JAX-RS
    Affects Versions: 3.0.1, 2.7.12
         Environment: Apache Tomcat / 7.0.54
Eclipse Jetty / 9.2.2
            Reporter: Daniel


If a REST service uses path parameters, these parameters must not contain any 
semicolon as the parameter value gets truncated after the semicolon by many 
runtime environments. For that reason especially the semicolon should be 
encoded while building the client proxy.

I pinned this issue down to the usage of 
{{org.apache.cxf.jaxrs.utils.HttpUtils.pathEncode(String)}} during the creation 
of the request URI. Path parameters are encoded using a fixed list of 
characters ({{=@/:!$&\'(),;~}}) that are preserved in {{pathEncode(String)}}. 
While this is fine/needed for encoding a complete path it leads to problems if 
used for encoding single elements of a path like path parameters.

Attached you'll find a minimal example project containing a simple REST service 
that returns the path provided parameters. If deployed on localhost:8080, a 
call to 
{{http://localhost:8080/cxf-test-0.1/rest/cxf-test/Rüdiger/R&uuml%3Bdiger}}
 will result in {{anAttribute=R&uuml, anotherAttribute=Rüdiger}} to be 
returned.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to