snichol     2002/07/31 20:07:32

  Modified:    java/docs changes.html
               java/src/org/apache/soap/util/net SSLUtils.java
  Log:
  Submitted by: Phil Bohnenkamp <[EMAIL PROTECTED]>
  Reviewed by: Scott Nichol
  
  The attached modified class is to add support for https tunneling through
  a proxy that requires authentication. Although tunneling that requires
  authentication works with http, it didn't for https.
  
  After sniffing around, I found that the standard system property for the
  authentication string to pass to the proxy is https.proxyAuth. This
  authentication string format is defined in the
  "HTTP Authentication: Basic and Digest Access Authentication" specification
  found at ftp://ftp.isi.edu/in-notes/rfc2617.txt. If https.proxyAuth is not
  found it assumes proxy authentication is not required.
  
  Revision  Changes    Path
  1.35      +1 -0      xml-soap/java/docs/changes.html
  
  Index: changes.html
  ===================================================================
  RCS file: /home/cvs/xml-soap/java/docs/changes.html,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- changes.html      30 Jul 2002 20:32:04 -0000      1.34
  +++ changes.html      1 Aug 2002 03:07:32 -0000       1.35
  @@ -53,6 +53,7 @@
         This dramatically decreases latency when the payload is smaller
         than the TCP segment size, assuming the server platform uses
         a long delayed ACK timer (typically 200 ms).</li>
  +      <li>Support authentication for https proxies.</li>
       </ul>
     </li>
     <li><A name="v2.3.1"><STRONG>Version 2.3.1</STRONG></A>
  
  
  
  1.5       +30 -5     xml-soap/java/src/org/apache/soap/util/net/SSLUtils.java
  
  Index: SSLUtils.java
  ===================================================================
  RCS file: /home/cvs/xml-soap/java/src/org/apache/soap/util/net/SSLUtils.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- SSLUtils.java     21 Aug 2001 19:22:35 -0000      1.4
  +++ SSLUtils.java     1 Aug 2002 03:07:32 -0000       1.5
  @@ -67,6 +67,7 @@
    * A bunch of utility stuff for doing SSL things.
    *
    * @author Chris Nelson ([EMAIL PROTECTED])
  + * @author Phil Bohnenkamp ([EMAIL PROTECTED])
    */
   public class SSLUtils {
           static String tunnelHost;
  @@ -135,11 +136,34 @@
           static private void doTunnelHandshake(Socket tunnel, String host, int port)
            throws IOException
           {
  -             OutputStream out = tunnel.getOutputStream();
  -             String msg = "CONNECT " + host + ":" + port + " HTTP/1.0\n"
  -                          + "User-Agent: "
  -                          + sun.net.www.protocol.http.HttpURLConnection.userAgent
  -                          + "\r\n\r\n";
  +                              /*
  +                               * The proxy may need an authorization string. Check 
  +                               * standard https property.
  +                               */
  +                              String proxyAuth = 
System.getProperty("https.proxyAuth");
  +                              
  +                              String msg;
  +                              OutputStream out = tunnel.getOutputStream();
  +
  +                      if (proxyAuth == null)
  +                      {
  +                             // Autherization not required
  +                      
  +                     msg = "CONNECT " + host + ":" + port + " HTTP/1.0\n"
  +                               + "User-Agent: "
  +                               + 
sun.net.www.protocol.http.HttpURLConnection.userAgent
  +                               + "\r\n\r\n";
  +               }
  +               else
  +               {
  +                     // need to specify an authorization string in http header
  +                     msg = "CONNECT " + host + ":" + port + " HTTP/1.0\n"
  +                                                     + "Proxy-Authorization: " + 
proxyAuth + "\n"
  +                       + "User-Agent: "
  +                       + sun.net.www.protocol.http.HttpURLConnection.userAgent
  +                       + "\r\n\r\n";
  +               }
  +
                byte b[];
                try {
                    /*
  @@ -209,3 +233,4 @@
                /* tunneling Handshake was successful! */
            }
   }
  +
  
  
  

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

Reply via email to