[ 
https://jira.codehaus.org/browse/WAGON-419?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Olivier Lamy reassigned WAGON-419:
----------------------------------

    Assignee: Olivier Lamy

> HTTP wagons incorrectly encode blank space in URLs causing resources to be 
> uploaded/looked up with a "+" sign
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: WAGON-419
>                 URL: https://jira.codehaus.org/browse/WAGON-419
>             Project: Maven Wagon
>          Issue Type: Bug
>          Components: wagon-http, wagon-http-lightweight, wagon-webdav
>    Affects Versions: 1.0, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6
>         Environment: Apache Maven 3.1.1 
> (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 11:22:22-0400)
> Maven home: /usr/local/Cellar/maven/3.1.1/libexec
> Java version: 1.7.0_51, vendor: Oracle Corporation
> Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre
> Default locale: en_US, platform encoding: US-ASCII
> OS name: "mac os x", version: "10.9.4", arch: "x86_64", family: "mac"
>            Reporter: Roberto Andrade
>            Assignee: Olivier Lamy
>            Priority: Minor
>             Fix For: 2.7
>
>
> The wagons all use 
> [{{java.net.URLEncoder.encode}}|http://docs.oracle.com/javase/7/docs/api/java/net/URLEncoder.html]
>  to encode the path components of the URL which uses 
> {{application/x-www-form-urlencoded}} format instead of the more generic one 
> defined by RFC2396. As documented by the 
> [java.net.URL|http://docs.oracle.com/javase/7/docs/api/java/net/URL.html] 
> class, this should only be used for HTML/form encoding and not generic URL 
> encoding:
> {quote}
> The URLEncoder and URLDecoder classes can also be used, but only for HTML 
> form encoding, which is not the same as the encoding scheme defined in 
> RFC2396.
> {quote}
> The use of such encoder affects URLs with spaces (i.e.: on the resource path) 
> by encoding it to {{+}} instead of the traditional {{%20}} which would 
> ultimately result in an actual space being stored on the server when 
> receiving a {{PUT}} request. Additionally, the 
> {{application/x-www-form-urlencoded}} format should only be used if the HTTP 
> request itself has that as a {{Content-Type}} header value, which in the 
> majority of the cases here is not the case (the HTTP client will either be 
> sending up the correctly translated MIME type, a generic 
> {{application/octet-stream}} or some other form of encoding - i.e.: base64, 
> but the URL encoding is completely independent of that).
> This is probably a known issue given there are {{TODO}} comments on the code 
> for every one of the wagons.
> I'm submitting a PR on Github with a proposed fix for them all.



--
This message was sent by Atlassian JIRA
(v6.1.6#6162)

Reply via email to