mbecke      2004/05/02 08:19:15

  Modified:    httpclient/src/test/org/apache/commons/httpclient
                        TestURI.java
               httpclient/src/java/org/apache/commons/httpclient
                        HttpURL.java
               httpclient release_notes.txt
  Log:
  HttpUrl now accepts unescaped passwords.
  
  PR: 28728
  Submitted by: Michael Becke
  Reviewed by: Oleg Kalnichevski
  
  Revision  Changes    Path
  1.10      +9 -5      
jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestURI.java
  
  Index: TestURI.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestURI.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- TestURI.java      22 Feb 2004 18:08:50 -0000      1.9
  +++ TestURI.java      2 May 2004 15:19:15 -0000       1.10
  @@ -181,14 +181,18 @@
           
       }
   
  -
       public void testTestHttpUrlAuthorityString() throws Exception {
           HttpURL url = new HttpURL("localhost", -1, "/");
           assertEquals("http://localhost/";, url.toString());
           url.setRawUserinfo("user".toCharArray(), "password".toCharArray());
           assertEquals("http://localhost/";, url.toString());
           assertEquals("user:[EMAIL PROTECTED]", url.getAuthority());
  -        
  +
  +        url = new HttpURL("user", "pass#", "localhost", 8080, "/");
  +        assertEquals("http://localhost:8080/";, url.toString());
  +        assertEquals("user:pass#", url.getUserinfo());
  +        assertEquals("user:pass%23", url.getEscapedUserinfo());
  +
           url = new HttpURL("localhost", 8080, "/");
           assertEquals("http://localhost:8080/";, url.toString());
           url.setRawUserinfo("user".toCharArray(), "password".toCharArray());
  
  
  
  1.17      +11 -9     
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/HttpURL.java
  
  Index: HttpURL.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/HttpURL.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- HttpURL.java      18 Apr 2004 23:51:35 -0000      1.16
  +++ HttpURL.java      2 May 2004 15:19:15 -0000       1.17
  @@ -29,6 +29,8 @@
   
   package org.apache.commons.httpclient;
   
  +import org.apache.commons.httpclient.util.URIUtil;
  +
   /**
    * The HTTP URL.
    *
  @@ -316,11 +318,11 @@
               buff.append(_default_scheme);
               buff.append("://");
               if (userinfo != null) {
  -                buff.append(userinfo);
  +                buff.append(URIUtil.encode(userinfo, URI.allowed_userinfo));
                   buff.append('@');
               }
               if (host != null) {
  -                buff.append(host);
  +                buff.append(URIUtil.encode(host, URI.allowed_host));
                   if (port != -1 || port != DEFAULT_PORT) {
                       buff.append(':');
                       buff.append(port);
  @@ -332,17 +334,17 @@
                   throw new URIException(URIException.PARSING,
                           "abs_path requested");
               }
  -            buff.append(path);
  +            buff.append(URIUtil.encode(path, URI.allowed_abs_path));
           }
           if (query != null) {
               buff.append('?');
  -            buff.append(query);
  +            buff.append(URIUtil.encode(query, URI.allowed_query));
           }
           if (fragment != null) {
               buff.append('#');
  -            buff.append(fragment);
  +            buff.append(URIUtil.encode(fragment, URI.allowed_fragment));
           }
  -        parseUriReference(buff.toString(), false);
  +        parseUriReference(buff.toString(), true);
           checkValid();
       }
   
  
  
  
  1.18      +4 -0      jakarta-commons/httpclient/release_notes.txt
  
  Index: release_notes.txt
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/httpclient/release_notes.txt,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- release_notes.txt 15 Feb 2004 13:12:38 -0000      1.17
  +++ release_notes.txt 2 May 2004 15:19:15 -0000       1.18
  @@ -1,5 +1,9 @@
   Changes on the CVS trunk:
   
  + * 28728 - HttpUrl now accepts unescaped passwords
  +
  + * 28626 - Fixed ArrayIndexOutOfBoundsException in HttpStatus.getStatusText()
  +
    * 24012 - Added IgnoreCookiesSpec.
    
    * 24018 - Cookie and Authorization headers can now be set manually.
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to