olegk       2004/01/06 12:08:56

  Modified:    httpclient/src/java/org/apache/commons/httpclient
                        MultiThreadedHttpConnectionManager.java URI.java
               httpclient/src/java/org/apache/commons/httpclient/auth
                        AuthScheme.java BasicScheme.java DigestScheme.java
                        NTLM.java NTLMScheme.java
               httpclient/src/java/org/apache/commons/httpclient/util
                        EncodingUtil.java URIUtil.java
               httpclient/src/test/org/apache/commons/httpclient
                        NoncompliantPostMethod.java TestAuthenticator.java
                        TestBadContentLength.java
                        TestHttpConnectionManager.java
                        TestMethodsRedirectNoHost.java TestNoHost.java
               httpclient/src/test/org/apache/commons/httpclient/server
                        ProxyAuthRequestHandler.java
  Removed:     httpclient/src/java/org/apache/commons/httpclient/util
                        Base64.java
               httpclient/src/test/org/apache/commons/httpclient
                        TestBase64.java
  Log:
  PR #16881 (migrate to commons-codec Base64)
  
  HttpClient made dependent on Commons-codec to perform Base64 and URL 
encoding/decoding
  
  Contributed by Oleg Kalnichevski
  Reviewed By Michael Becke
  
  Revision  Changes    Path
  1.30      +9 -3      
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/MultiThreadedHttpConnectionManager.java
  
  Index: MultiThreadedHttpConnectionManager.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/MultiThreadedHttpConnectionManager.java,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- MultiThreadedHttpConnectionManager.java   11 Dec 2003 01:19:32 -0000      1.29
  +++ MultiThreadedHttpConnectionManager.java   6 Jan 2004 20:08:56 -0000       1.30
  @@ -1114,6 +1114,9 @@
               }
           }
   
  +        /**
  +         * @deprecated
  +         */
           public void print(String data)
               throws IOException, IllegalStateException, HttpRecoverableException {
               if (hasConnection()) {
  @@ -1132,6 +1135,9 @@
               }
           }
   
  +        /**
  +         * @deprecated
  +         */
           public void printLine(String data)
               throws IOException, IllegalStateException, HttpRecoverableException {
               if (hasConnection()) {
  
  
  
  1.43      +58 -72    
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/URI.java
  
  Index: URI.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/URI.java,v
  retrieving revision 1.42
  retrieving revision 1.43
  diff -u -r1.42 -r1.43
  --- URI.java  11 Oct 2003 19:46:51 -0000      1.42
  +++ URI.java  6 Jan 2004 20:08:56 -0000       1.43
  @@ -67,11 +67,14 @@
   import java.io.ObjectInputStream;
   import java.io.ObjectOutputStream;
   import java.io.Serializable;
  -import java.io.UnsupportedEncodingException;
   import java.util.Locale;
   import java.util.BitSet;
   import java.util.Hashtable;
   
  +import org.apache.commons.codec.DecoderException;
  +import org.apache.commons.codec.net.URLCodec;
  +import org.apache.commons.httpclient.util.EncodingUtil;
  +
   /**
    * The interface for the URI(Uniform Resource Identifiers) version of RFC 2396.
    * This class has the purpose of supportting of parsing a URI reference to
  @@ -1698,43 +1701,19 @@
        * @return URI character sequence
        * @throws URIException null component or unsupported character encoding
        */
  +        
       protected static char[] encode(String original, BitSet allowed,
               String charset) throws URIException {
  -
  -        // encode original to uri characters.
           if (original == null) {
  -            throw new URIException(URIException.PARSING, "null");
  +            throw new IllegalArgumentException("Original string may not be null");
           }
  -        // escape octet to uri characters.
           if (allowed == null) {
  -            throw new URIException(URIException.PARSING,
  -                    "null allowed characters");
  -        }
  -        byte[] octets;
  -        try {
  -            octets = original.getBytes(charset);
  -        } catch (UnsupportedEncodingException error) {
  -            throw new URIException(URIException.UNSUPPORTED_ENCODING, charset);
  -        }
  -        StringBuffer buf = new StringBuffer(octets.length);
  -        for (int i = 0; i < octets.length; i++) {
  -            char c = (char) octets[i];
  -            if (allowed.get(c)) {
  -                buf.append(c);
  -            } else {
  -                buf.append('%');
  -                byte b = octets[i]; // use the original byte value
  -                char hexadecimal = Character.forDigit((b >> 4) & 0xF, 16);
  -                buf.append(Character.toUpperCase(hexadecimal)); // high
  -                hexadecimal = Character.forDigit(b & 0xF, 16);
  -                buf.append(Character.toUpperCase(hexadecimal)); // low
  -            }
  +            throw new IllegalArgumentException("Allowed bitset may not be null");
           }
  -
  -        return buf.toString().toCharArray();
  +        byte[] rawdata = URLCodec.encodeUrl(allowed, 
EncodingUtil.getBytes(original, charset));
  +        return HttpConstants.getAsciiString(rawdata).toCharArray();
       }
   
  -
       /**
        * Decodes URI encoded string.
        *
  @@ -1765,50 +1744,57 @@
        * @throws URIException incomplete trailing escape pattern or unsupported
        * character encoding
        */
  -    protected static String decode(char[] component, String charset)
  +    protected static String decode(char[] component, String charset) 
           throws URIException {
  -
  -        // unescape uri characters to octets
  -        if (component == null) {  
  -            return null;
  +        if (component == null) {
  +            throw new IllegalArgumentException("Component array of chars may not be 
null");
           }
  +        return decode(new String(component), charset);
  +    }
   
  -        byte[] octets;
  -        try {
  -            octets = new String(component).getBytes(charset);
  -        } catch (UnsupportedEncodingException error) {
  -            throw new URIException(URIException.UNSUPPORTED_ENCODING,
  -                    "not supported " + charset + " encoding");
  -        }
  -        int length = octets.length;
  -        int oi = 0; // output index
  -        for (int ii = 0; ii < length; oi++) {
  -            byte aByte = (byte) octets[ii++];
  -            if (aByte == '%' && ii + 2 <= length)  {
  -                byte high = (byte) Character.digit((char) octets[ii++], 16);
  -                byte low = (byte) Character.digit((char) octets[ii++], 16);
  -                if (high == -1 || low == -1) {
  -                    throw new URIException(URIException.ESCAPING,
  -                            "incomplete trailing escape pattern");
  -                            
  -                }
  -                aByte = (byte) ((high << 4) + low);
  -            }
  -            octets[oi] = (byte) aByte;
  +    /**
  +     * Decodes URI encoded string.
  +     *
  +     * This is a two mapping, one from URI characters to octets, and
  +     * subsequently a second from octets to original characters:
  +     * <p><blockquote><pre>
  +     *   URI character sequence->octet sequence->original character sequence
  +     * </pre></blockquote><p>
  +     *
  +     * A URI must be separated into its components before the escaped
  +     * characters within those components can be allowedly decoded.
  +     * <p>
  +     * Notice that there is a chance that URI characters that are non UTF-8
  +     * may be parsed as valid UTF-8.  A recent non-scientific analysis found
  +     * that EUC encoded Japanese words had a 2.7% false reading; SJIS had a
  +     * 0.0005% false reading; other encoding such as ASCII or KOI-8 have a 0%
  +     * false reading.
  +     * <p>
  +     * The percent "%" character always has the reserved purpose of being
  +     * the escape indicator, it must be escaped as "%25" in order to be used
  +     * as data within a URI.
  +     * <p>
  +     * The unescape method is internally performed within this method.
  +     *
  +     * @param component the URI character sequence
  +     * @param charset the protocol charset
  +     * @return original character sequence
  +     * @throws URIException incomplete trailing escape pattern or unsupported
  +     * character encoding
  +     */
  +    protected static String decode(String component, String charset) 
  +        throws URIException {
  +        if (component == null) {
  +            throw new IllegalArgumentException("Component array of chars may not be 
null");
           }
  -
  -        String result;
  -        try {
  -            result = new String(octets, 0, oi, charset);
  -        } catch (UnsupportedEncodingException error) {
  -            throw new URIException(URIException.UNSUPPORTED_ENCODING,
  -                    "not supported " + charset + " encoding");
  +        byte[] rawdata = null;
  +        try { 
  +            rawdata = URLCodec.decodeUrl(HttpConstants.getAsciiBytes(component));
  +        } catch (DecoderException e) {
  +            throw new URIException(e.getMessage());
           }
  -
  -        return result;
  +        return HttpConstants.getContentString(rawdata, charset);
       }
  -
  -
       /**
        * Pre-validate the unescaped URI string within a specific component.
        *
  
  
  
  1.7       +4 -4      
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/auth/AuthScheme.java
  
  Index: AuthScheme.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/auth/AuthScheme.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- AuthScheme.java   11 Dec 2003 01:19:32 -0000      1.6
  +++ AuthScheme.java   6 Jan 2004 20:08:56 -0000       1.7
  @@ -165,7 +165,7 @@
       boolean isConnectionBased();    
       
       /**
  -     * @deprecated Use [EMAIL PROTECTED] #authenticate(Credentials, String, String, 
HttpMethodParams)}
  +     * @deprecated Use [EMAIL PROTECTED] #authenticate(Credentials, HttpMethod)}
        * 
        * Produces an authorization string for the given set of [EMAIL PROTECTED] 
Credentials},
        * method name and URI using the given authentication scheme in response to 
  
  
  
  1.10      +7 -5      
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/auth/BasicScheme.java
  
  Index: BasicScheme.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/auth/BasicScheme.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- BasicScheme.java  11 Dec 2003 01:19:32 -0000      1.9
  +++ BasicScheme.java  6 Jan 2004 20:08:56 -0000       1.10
  @@ -63,11 +63,11 @@
   
   package org.apache.commons.httpclient.auth;
   
  +import org.apache.commons.codec.binary.Base64;
   import org.apache.commons.httpclient.Credentials;
   import org.apache.commons.httpclient.HttpConstants;
   import org.apache.commons.httpclient.HttpMethod;
   import org.apache.commons.httpclient.UsernamePasswordCredentials;
  -import org.apache.commons.httpclient.util.Base64;
   import org.apache.commons.httpclient.util.EncodingUtil;
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
  @@ -138,6 +138,8 @@
        *   be generated due to an authentication failure
        * 
        * @return a basic authorization string
  +     * 
  +     * @deprecated Use [EMAIL PROTECTED] #authenticate(Credentials, HttpMethod)}
        */
       public String authenticate(Credentials credentials, String method, String uri)
         throws AuthenticationException {
  @@ -233,7 +235,7 @@
           buffer.append(credentials.getPassword());
           
           return "Basic " + HttpConstants.getAsciiString(
  -                Base64.encode(EncodingUtil.getBytes(buffer.toString(), charset)));
  +                Base64.encodeBase64(EncodingUtil.getBytes(buffer.toString(), 
charset)));
       }
       
   }
  
  
  
  1.14      +5 -3      
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/auth/DigestScheme.java
  
  Index: DigestScheme.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/auth/DigestScheme.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- DigestScheme.java 11 Dec 2003 01:19:32 -0000      1.13
  +++ DigestScheme.java 6 Jan 2004 20:08:56 -0000       1.14
  @@ -276,6 +276,8 @@
        * 
        * @see org.apache.commons.httpclient.HttpMethod#getName()
        * @see org.apache.commons.httpclient.HttpMethod#getPath()
  +     * 
  +     * @deprecated Use [EMAIL PROTECTED] #authenticate(Credentials, HttpMethod)}
        */
       public String authenticate(Credentials credentials, String method, String uri)
         throws AuthenticationException {
  
  
  
  1.6       +7 -7      
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/auth/NTLM.java
  
  Index: NTLM.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/auth/NTLM.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- NTLM.java 11 Dec 2003 01:19:32 -0000      1.5
  +++ NTLM.java 6 Jan 2004 20:08:56 -0000       1.6
  @@ -72,8 +72,8 @@
   import javax.crypto.NoSuchPaddingException;
   import javax.crypto.spec.SecretKeySpec;
   
  +import org.apache.commons.codec.binary.Base64;
   import org.apache.commons.httpclient.HttpConstants;
  -import org.apache.commons.httpclient.util.Base64;
   import org.apache.commons.httpclient.util.EncodingUtil;
   
   /**
  @@ -252,7 +252,7 @@
           } else {
               resp = currentResponse;
           }
  -        return HttpConstants.getString(Base64.encode(resp));
  +        return HttpConstants.getString(Base64.encodeBase64(resp));
       }
       
       /**
  @@ -340,7 +340,7 @@
        */
       private byte[] parseType2Message(String message) {
           // Decode the message first.
  -        byte[] msg = Base64.decode(EncodingUtil.getBytes(message, DEFAULT_CHARSET));
  +        byte[] msg = Base64.decodeBase64(EncodingUtil.getBytes(message, 
DEFAULT_CHARSET));
           byte[] nonce = new byte[8];
           // The nonce is the 8 bytes starting from the byte in position 24.
           for (int i = 0; i < 8; i++) {
  
  
  
  1.14      +5 -3      
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/auth/NTLMScheme.java
  
  Index: NTLMScheme.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/auth/NTLMScheme.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- NTLMScheme.java   11 Dec 2003 01:19:32 -0000      1.13
  +++ NTLMScheme.java   6 Jan 2004 20:08:56 -0000       1.14
  @@ -273,6 +273,8 @@
        *   be generated due to an authentication failure
        * 
        * @return an NTLM authorization string
  +     * 
  +     * @deprecated Use [EMAIL PROTECTED] #authenticate(Credentials, HttpMethod)}
        */
       public String authenticate(Credentials credentials, String method, String uri) 
         throws AuthenticationException {
  
  
  
  1.3       +51 -49    
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/util/EncodingUtil.java
  
  Index: EncodingUtil.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/util/EncodingUtil.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- EncodingUtil.java 11 Dec 2003 01:19:33 -0000      1.2
  +++ EncodingUtil.java 6 Jan 2004 20:08:56 -0000       1.3
  @@ -63,10 +63,11 @@
   package org.apache.commons.httpclient.util;
   
   import java.io.UnsupportedEncodingException;
  -import java.util.BitSet;
   
  +import org.apache.commons.codec.net.URLCodec;
  +import org.apache.commons.httpclient.HttpClientError;
  +import org.apache.commons.httpclient.HttpConstants;
   import org.apache.commons.httpclient.NameValuePair;
  -import org.apache.commons.httpclient.URIException;
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
   
  @@ -83,31 +84,44 @@
       private static final Log LOG = LogFactory.getLog(EncodingUtil.class);
   
       /**
  -     * BitSet of www-form-url safe characters.
  +     * Form-urlencoding routine.
  +     *
  +     * The default encoding for all forms is `application/x-www-form-urlencoded'. 
  +     * A form data set is represented in this media type as follows:
  +     *
  +     * The form field names and values are escaped: space characters are replaced 
  +     * by `+', and then reserved characters are escaped as per [URL]; that is, 
  +     * non-alphanumeric characters are replaced by `%HH', a percent sign and two 
  +     * hexadecimal digits representing the ASCII code of the character. Line 
breaks, 
  +     * as in multi-line text field values, are represented as CR LF pairs, i.e. 
`%0D%0A'.
  +     * 
  +     * <p>
  +     * if the given charset is not supported, [EMAIL PROTECTED] 
HttpConstants.DEFAULT_CONTENT_CHARSET default HTTP
  +     * content encoding} is used instead.
  +     * </p>
  +     * 
  +     * @param pairs the values to be encoded
  +     * @param charset the character set of pairs to be encoded
  +     * 
  +     * @return the urlencoded pairs
  +     * 
  +     * @since 2.0 final
        */
  -    private static final BitSet WWW_FORM_URL = new BitSet(256);
  -
  -    // Static initializer for www_form_url
  -    static {
  -        // alpha characters
  -        for (int i = 'a'; i <= 'z'; i++) {
  -            WWW_FORM_URL.set(i);
  -        }
  -        for (int i = 'A'; i <= 'Z'; i++) {
  -            WWW_FORM_URL.set(i);
  -        }
  -        // numeric characters
  -        for (int i = '0'; i <= '9'; i++) {
  -            WWW_FORM_URL.set(i);
  +     public static String formUrlEncode(NameValuePair[] pairs, String charset) {
  +        try {
  +            return doFormUrlEncode(pairs, charset);
  +        } catch (UnsupportedEncodingException e) {
  +            LOG.error("Encoding not supported: " + charset);
  +            try {
  +                return doFormUrlEncode(pairs, 
HttpConstants.DEFAULT_CONTENT_CHARSET);
  +            } catch (UnsupportedEncodingException fatal) {
  +                // Should never happen. ISO-8859-1 must be supported on all JVMs
  +                throw new HttpClientError("Encoding not supported: " + 
  +                    HttpConstants.DEFAULT_CONTENT_CHARSET);
  +            }
           }
  -        // blank to be replaced with +
  -        WWW_FORM_URL.set(' ');
  -        WWW_FORM_URL.set('-');
  -        WWW_FORM_URL.set('_');
  -        WWW_FORM_URL.set('.');
  -        WWW_FORM_URL.set('*');
       }
  -    
  +
       /**
        * Form-urlencoding routine.
        *
  @@ -124,37 +138,25 @@
        * @param charset the character set of pairs to be encoded
        * 
        * @return the urlencoded pairs
  +     * @throws UnsupportedEncodingException if charset is not supported
        * 
        * @since 2.0 final
        */
  -    public static String formUrlEncode(NameValuePair[] pairs, String charset) {
  -        
  +     private static String doFormUrlEncode(NameValuePair[] pairs, String charset)
  +        throws UnsupportedEncodingException 
  +     {
           StringBuffer buf = new StringBuffer();
           for (int i = 0; i < pairs.length; i++) {
  -            if (pairs[i].getName() != null) {
  +            URLCodec codec = new URLCodec();
  +            NameValuePair pair = pairs[i];
  +            if (pair.getName() != null) {
                   if (i > 0) {
                       buf.append("&");
                   }
  -                String queryName = pairs[i].getName();
  -                try {
  -                    queryName = URIUtil.encode(queryName, WWW_FORM_URL, 
charset).replace(' ', '+');
  -                } catch (URIException urie) {
  -                    LOG.error("Error encoding pair name: " + queryName, urie);
  -                }
  -                buf.append(queryName);
  +                buf.append(codec.encode(pair.getName(), charset));
                   buf.append("=");
  -                if (pairs[i].getValue() != null) {
  -                    String queryValue = pairs[i].getValue();
  -                    try {
  -                        queryValue = URIUtil.encode(
  -                            queryValue, 
  -                            WWW_FORM_URL, 
  -                            charset
  -                        ).replace(' ', '+');
  -                    } catch (URIException urie) {
  -                        LOG.error("Error encoding pair value: " + queryValue, urie);
  -                    }
  -                    buf.append(queryValue);
  +                if (pair.getValue() != null) {
  +                    buf.append(codec.encode(pair.getValue(), charset));
                   }
               }
           }
  
  
  
  1.23      +26 -15    
jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/util/URIUtil.java
  
  Index: URIUtil.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/util/URIUtil.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- URIUtil.java      5 Jul 2003 22:31:21 -0000       1.22
  +++ URIUtil.java      6 Jan 2004 20:08:56 -0000       1.23
  @@ -64,6 +64,10 @@
   package org.apache.commons.httpclient.util;
   
   import java.util.BitSet;
  +
  +import org.apache.commons.codec.DecoderException;
  +import org.apache.commons.codec.net.URLCodec;
  +import org.apache.commons.httpclient.HttpConstants;
   import org.apache.commons.httpclient.URI;
   import org.apache.commons.httpclient.URIException;
   
  @@ -511,7 +515,8 @@
        * @throws URIException if the default protocol charset is not supported
        * 
        * @see URI#getDefaultProtocolCharset
  -     * @see Coder#encode
  +     * 
  +     * @deprecated use org.apache.commons.codec.net.URLCodec
        */
       public static String encode(String unescaped, BitSet allowed)
           throws URIException {
  @@ -528,15 +533,12 @@
        * @param allowed allowed characters not to be escaped
        * @param charset the charset
        * @return the escaped string
  -     * 
  -     * @throws URIException if the charset is not supported
  -     * 
  -     * @see Coder#encode
        */
       public static String encode(String unescaped, BitSet allowed,
               String charset) throws URIException {
  -
  -        return new String(Coder.encode(unescaped, allowed, charset));
  +        byte[] rawdata = URLCodec.encodeUrl(allowed, 
  +            EncodingUtil.getBytes(unescaped, charset));
  +        return HttpConstants.getAsciiString(rawdata);
       }
   
   
  @@ -547,16 +549,19 @@
        * @param escaped a string
        * @return the unescaped string
        * 
  -     * @throws URIException if the default protocol charset is not supported
  +     * @throws URIException if the string cannot be decoded (invalid)
        * 
        * @see URI#getDefaultProtocolCharset
  -     * @see Coder#decode
        */
       public static String decode(String escaped) throws URIException {
  -        return Coder.decode(escaped.toCharArray(), URI.getDefaultProtocolCharset());
  +        try {
  +            byte[] rawdata = 
URLCodec.decodeUrl(HttpConstants.getAsciiBytes(escaped));
  +            return HttpConstants.getContentString(rawdata, 
URI.getDefaultProtocolCharset());
  +        } catch (DecoderException e) {
  +            throw new URIException(e.getMessage());
  +        }
       }
   
  -
       /**
        * Unescape and decode a given string regarded as an escaped string.
        *
  @@ -579,6 +584,8 @@
       /**
        * The basic and internal utility for URI escape and character encoding and
        * decoding.
  +     * 
  +     * @deprecated use org.apache.commons.codec.net.URLCodec
        */
       protected static class Coder extends URI {
   
  @@ -592,6 +599,8 @@
            * @return the escaped and encoded string
            * 
            * @throws URIException if the charset is not supported
  +         * 
  +         * @deprecated use org.apache.commons.codec.net.URLCodec
            */
           public static char[] encode(String unescapedComponent, BitSet allowed, 
String charset) 
               throws URIException {
  @@ -608,6 +617,8 @@
            * @return the escaped and encoded string
            * 
            * @throws URIException if the charset is not supported
  +         * 
  +         * @deprecated use org.apache.commons.codec.net.URLCodec
            */
           public static String decode(char[] escapedComponent, String charset)
               throws URIException {
  
  
  
  1.2       +1 -1      
jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/NoncompliantPostMethod.java
  
  Index: NoncompliantPostMethod.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/NoncompliantPostMethod.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- NoncompliantPostMethod.java       1 Feb 2003 16:10:48 -0000       1.1
  +++ NoncompliantPostMethod.java       6 Jan 2004 20:08:56 -0000       1.2
  @@ -99,7 +99,7 @@
               Header header = headers[i];
               // Write all the headers but "Expect"
               if (!header.getName().equalsIgnoreCase("Expect") ) {
  -                conn.print(header.toExternalForm());
  +                conn.print(header.toExternalForm(), "US-ASCII");
               }
           }
       }
  
  
  
  1.36      +28 -15    
jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestAuthenticator.java
  
  Index: TestAuthenticator.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestAuthenticator.java,v
  retrieving revision 1.35
  retrieving revision 1.36
  diff -u -r1.35 -r1.36
  --- TestAuthenticator.java    10 Dec 2003 21:04:13 -0000      1.35
  +++ TestAuthenticator.java    6 Jan 2004 20:08:56 -0000       1.36
  @@ -62,13 +62,19 @@
   
   package org.apache.commons.httpclient;
   
  +import java.util.Map;
  +
   import junit.framework.Test;
   import junit.framework.TestSuite;
   
  -import java.util.Map;
  -
  -import org.apache.commons.httpclient.auth.*;
  -import org.apache.commons.httpclient.util.Base64;
  +import org.apache.commons.codec.binary.Base64;
  +import org.apache.commons.httpclient.auth.AuthChallengeParser;
  +import org.apache.commons.httpclient.auth.AuthScheme;
  +import org.apache.commons.httpclient.auth.BasicScheme;
  +import org.apache.commons.httpclient.auth.DigestScheme;
  +import org.apache.commons.httpclient.auth.HttpAuthenticator;
  +import org.apache.commons.httpclient.auth.MalformedChallengeException;
  +import org.apache.commons.httpclient.auth.NTLMScheme;
   
   /**
    * Unit tests for [EMAIL PROTECTED] Authenticator}.
  @@ -190,7 +196,8 @@
           authscheme.processChallenge(challenge);
           assertTrue(HttpAuthenticator.authenticate(authscheme, method, null, state));
           assertTrue(null != method.getRequestHeader("Authorization"));
  -        String expected = "Basic " + 
HttpConstants.getString(Base64.encode(HttpConstants.getBytes("username:password")));
  +        String expected = "Basic " + HttpConstants.getString(
  +            Base64.encodeBase64(HttpConstants.getBytes("username:password")));
           assertEquals(expected,method.getRequestHeader("Authorization").getValue());
       }
   
  @@ -201,7 +208,8 @@
           HttpMethod method = new SimpleHttpMethod(new 
Header("WWW-Authenticate","Basic realm=\"realm1\""));
           assertTrue(HttpAuthenticator.authenticateDefault(method, null, state));
           assertTrue(null != method.getRequestHeader("Authorization"));
  -        String expected = "Basic " + 
HttpConstants.getString(Base64.encode(HttpConstants.getBytes("username:password")));
  +        String expected = "Basic " + HttpConstants.getString(
  +            Base64.encodeBase64(HttpConstants.getBytes("username:password")));
           assertEquals(expected,method.getRequestHeader("Authorization").getValue());
       }
   
  @@ -214,7 +222,8 @@
           authscheme.processChallenge(challenge);
           assertTrue(HttpAuthenticator.authenticate(authscheme, method, null, state));
           assertTrue(null != method.getRequestHeader("Authorization"));
  -        String expected = "Basic " + 
HttpConstants.getString(Base64.encode(HttpConstants.getBytes("username:password")));
  +        String expected = "Basic " + HttpConstants.getString(
  +            Base64.encodeBase64(HttpConstants.getBytes("username:password")));
           assertEquals(expected,method.getRequestHeader("Authorization").getValue());
       }
       
  @@ -226,7 +235,8 @@
           }
           
           UsernamePasswordCredentials credentials = new 
UsernamePasswordCredentials("dh", buffer.toString());
  -        assertEquals("Basic ZGg65C32Lfw=", BasicScheme.authenticate(credentials));
  +        assertEquals("Basic ZGg65C32Lfw=", 
  +            BasicScheme.authenticate(credentials, 
HttpConstants.DEFAULT_CONTENT_CHARSET));
       }
       
       public void testBasicAuthenticationWithMutlipleRealms() throws Exception {
  @@ -243,14 +253,16 @@
               HttpMethod method = new SimpleHttpMethod(new 
Header("WWW-Authenticate",challenge1));
               assertTrue(HttpAuthenticator.authenticate(authscheme1, method, null, 
state));
               assertTrue(null != method.getRequestHeader("Authorization"));
  -            String expected = "Basic " + 
HttpConstants.getString(Base64.encode(HttpConstants.getBytes("username:password")));
  +            String expected = "Basic " + HttpConstants.getString(
  +                Base64.encodeBase64(HttpConstants.getBytes("username:password")));
               
assertEquals(expected,method.getRequestHeader("Authorization").getValue());
           }
           {
               HttpMethod method = new SimpleHttpMethod(new Header("WWW-Authenticate", 
challenge2));
               assertTrue(HttpAuthenticator.authenticate(authscheme2, method, null, 
state));
               assertTrue(null != method.getRequestHeader("Authorization"));
  -            String expected = "Basic " + 
HttpConstants.getString(Base64.encode(HttpConstants.getBytes("uname2:password2")));
  +            String expected = "Basic " + HttpConstants.getString(
  +                Base64.encodeBase64(HttpConstants.getBytes("uname2:password2")));
               
assertEquals(expected,method.getRequestHeader("Authorization").getValue());
           }
       }
  @@ -270,7 +282,8 @@
   
           assertTrue(HttpAuthenticator.authenticateDefault(method, null, state));
           assertTrue(null != method.getRequestHeader("Authorization"));
  -        String expected = "Basic " + 
HttpConstants.getString(Base64.encode(HttpConstants.getBytes("username:password")));
  +        String expected = "Basic " + HttpConstants.getString(
  +            Base64.encodeBase64(HttpConstants.getBytes("username:password")));
           assertEquals(expected, method.getRequestHeader("Authorization").getValue());
       }
   
  
  
  
  1.3       +4 -5      
jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestBadContentLength.java
  
  Index: TestBadContentLength.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestBadContentLength.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- TestBadContentLength.java 11 Dec 2003 22:54:19 -0000      1.2
  +++ TestBadContentLength.java 6 Jan 2004 20:08:56 -0000       1.3
  @@ -63,7 +63,6 @@
   
   import java.io.IOException;
   import java.io.InputStream;
  -import java.net.ProtocolException;
   
   import junit.framework.Test;
   import junit.framework.TestSuite;
  
  
  
  1.15      +9 -5      
jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestHttpConnectionManager.java
  
  Index: TestHttpConnectionManager.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestHttpConnectionManager.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- TestHttpConnectionManager.java    19 Nov 2003 13:27:02 -0000      1.14
  +++ TestHttpConnectionManager.java    6 Jan 2004 20:08:56 -0000       1.15
  @@ -74,6 +74,7 @@
   import org.apache.commons.httpclient.methods.GetMethod;
   import org.apache.commons.httpclient.params.HttpConnectionManagerParams;
   import org.apache.commons.httpclient.protocol.Protocol;
  +import org.apache.commons.httpclient.protocol.ProtocolSocketFactory;
   import org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory;
   
   /**
  @@ -124,7 +125,10 @@
           client.getHostConfiguration().setHost(
               "notARealHost", 
               1234, 
  -            new Protocol("https", new FakeSecureProtocolSocketFactory(), 443)
  +            new Protocol(
  +                "https", 
  +                (ProtocolSocketFactory)new FakeSecureProtocolSocketFactory(), 
  +                443)
           );
           
           GetMethod get = new GetMethod("/");
  
  
  
  1.9       +11 -7     
jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestMethodsRedirectNoHost.java
  
  Index: TestMethodsRedirectNoHost.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestMethodsRedirectNoHost.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- TestMethodsRedirectNoHost.java    4 Sep 2003 02:12:13 -0000       1.8
  +++ TestMethodsRedirectNoHost.java    6 Jan 2004 20:08:56 -0000       1.9
  @@ -66,6 +66,7 @@
   import junit.framework.TestSuite;
   
   import org.apache.commons.httpclient.methods.PostMethod;
  +import org.apache.commons.httpclient.params.HttpClientParams;
   
   /**
    * @author <a href="mailto:[EMAIL PROTECTED]">Jeff Dever</a>
  @@ -172,7 +173,8 @@
   
           HttpMethod method = new SimpleHttpMethod("/oldfile");
           method.setFollowRedirects(true);
  -        method.setStrictMode(false);
  +        client.getParams().setBooleanParameter(
  +            HttpClientParams.REJECT_RELATIVE_REDIRECT, false);
           client.executeMethod(method);
           Header locationHeader = method.getResponseHeader("Location");
           assertEquals(200, method.getStatusCode());
  @@ -187,7 +189,8 @@
   
           HttpMethod method = new SimpleHttpMethod("/oldfile");
           method.setFollowRedirects(true);
  -        method.setStrictMode(true);
  +        client.getParams().setBooleanParameter(
  +            HttpClientParams.REJECT_RELATIVE_REDIRECT, true);
           method.execute(new HttpState(), conn);
           Header locationHeader = method.getResponseHeader("Location");
           assertEquals(302, method.getStatusCode());
  @@ -201,7 +204,8 @@
   
           HttpMethod method = new SimpleHttpMethod("/oldfile");
           method.setFollowRedirects(true);
  -        method.setStrictMode(true);
  +        client.getParams().setBooleanParameter(
  +            HttpClientParams.REJECT_RELATIVE_REDIRECT, false);
           method.execute(new HttpState(), conn);
           Header locationHeader = method.getResponseHeader("Location");
           assertEquals(302, method.getStatusCode());
  
  
  
  1.29      +4 -5      
jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestNoHost.java
  
  Index: TestNoHost.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/TestNoHost.java,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- TestNoHost.java   11 Dec 2003 22:54:19 -0000      1.28
  +++ TestNoHost.java   6 Jan 2004 20:08:56 -0000       1.29
  @@ -83,7 +83,6 @@
       public static Test suite() {
           TestSuite suite = new TestSuite();
           suite.addTest(TestHttpStatus.suite());
  -        suite.addTest(TestBase64.suite());
           suite.addTest(TestCookie.suite());
           suite.addTest(TestNVP.suite());
           suite.addTest(TestHeader.suite());
  
  
  
  1.5       +4 -4      
jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/server/ProxyAuthRequestHandler.java
  
  Index: ProxyAuthRequestHandler.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/httpclient/src/test/org/apache/commons/httpclient/server/ProxyAuthRequestHandler.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- ProxyAuthRequestHandler.java      11 Dec 2003 09:19:18 -0000      1.4
  +++ ProxyAuthRequestHandler.java      6 Jan 2004 20:08:56 -0000       1.5
  @@ -148,7 +148,7 @@
           try {
               scheme = new BasicScheme();
               scheme.processChallenge("basic realm=test");
  -            String expectedAuthString = scheme.authenticate(credentials, null, 
null);
  +            String expectedAuthString = scheme.authenticate(credentials, null);
               return expectedAuthString.equals(clientAuth.getValue());
           } catch (MalformedChallengeException e) {
               // TODO Auto-generated catch block
  
  
  

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

Reply via email to