[ 
https://issues.apache.org/jira/browse/HTTPCLIENT-1960?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16756198#comment-16756198
 ] 

Michael Osipov commented on HTTPCLIENT-1960:
--------------------------------------------

[~garydgregory], as for the HttpComponents it could be a class in it, but 
looking at it from the top, I'd like to see this rather as a dependency, not 
commons net or lang, they are just too big already. I'd code toss out all the 
crappy URI parsing in all Maven compoments. Most are just broken..especially in 
Wagon and SCM.

> URIBuilder incorrect handling of multiple leading slashes in path component
> ---------------------------------------------------------------------------
>
>                 Key: HTTPCLIENT-1960
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1960
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>          Components: HttpClient (async), HttpClient (classic)
>    Affects Versions: 4.5.5
>            Reporter: Raymond Cuenen
>            Assignee: Oleg Kalnichevski
>            Priority: Major
>             Fix For: 4.5.7, 5.0 Beta4
>
>
> If original path startsWith '/' it is removed by normalizePath; in that case 
> it should be added again URI-encoded. For example: A path value of 
> '/etc/motd' becomes:
> {code:java}
> ftp://[email protected]/etc/motd{code}
> while it should be:
> {code:java}
> ftp://[email protected]/%2Fetc/motd{code}
> Only when the path value is 'etc/motd' is should become 
> "ftp://[email protected]/etc/motd";
>   
> Fix for this issue in URIBuilder.java:
> {noformat}
> private String buildString() {
> ...
>     if (this.encodedPath != null) {
>         sb.append(normalizePath(this.encodedPath, sb.length() == 0));
>     } else if (this.path != null) {
>         String encodedPath = encodePath(normalizePath(this.path, sb.length() 
> == 0));
>         // Start fix for paths starting with '/'
>         // If original path startsWith '/' it is removed by normalizePath; in 
> that case it should be added again URI-encoded.
>         if (this.path.startsWith("/")) {
>             encodedPath = "/%2F" + encodedPath.substring(1);
>         }
>         // End fix
>         sb.append(encodedPath);
>     }
> ...
> }{noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to