tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Glen Nakamura <g...@imodulo.com>
Subject [PATCH] Fixes problem with Warp connector and HTTP POST via SSL.
Date Wed, 06 Feb 2002 08:37:50 GMT
Aloha,

The following patch fixes a problem with SSL client ceritificates and
HTTP POST data when using the Warp connector.  When Tomcat retrieves
the SSL certificate, the getX509Certificates() method is called and
this.packet is reset...  Now, when the read() method is called to retrieve
the POST data, the packet type is invalid and an exception is thrown
preventing the parameters from showing up in the request.  The quick fix
was to make the packet variable in getX509Certificates() local, but
maybe there should be another WarpPacket class variable that could be
reused instead of constructing a new WarpPacket on every invocation?
I'll leave that decision to people who are more familiar with the code.

- Glen Nakamura


--- webapp-module-1.0.1-tc401/java/WarpRequest.java	Wed Oct 31 13:21:33 2001
+++ ../webapp-module-1.0.1-tc401/java/WarpRequest.java	Fri Feb  1 14:46:53 2002
@@ -201,8 +201,9 @@
         public String getX509Certificates()
         throws IOException {
             if (closed) throw new IOException("Stream closed");
-            this.packet.reset();
-            this.packet.setType(Constants.TYPE_ASK_SSL_CLIENT);
+            WarpPacket packet = new WarpPacket();
+            packet.reset();
+            packet.setType(Constants.TYPE_ASK_SSL_CLIENT);
             this.request.getConnection().send(packet);
             packet.reset();
 
@@ -211,7 +212,7 @@
             if (packet.getType()==Constants.TYPE_REP_SSL_NO) return(null);
             if (packet.getType()!=Constants.TYPE_REP_SSL_CERT)
                throw new IOException("Invalid WARP packet type for CC");
-            return(this.packet.readString());
+            return(packet.readString());
         }
 
         /** Read the data from the SSL environment. */
@@ -219,8 +220,9 @@
         throws IOException {
           
             if (closed) throw new IOException("Stream closed");
-            this.packet.reset();
-            this.packet.setType(Constants.TYPE_ASK_SSL);
+            WarpPacket packet = new WarpPacket();
+            packet.reset();
+            packet.setType(Constants.TYPE_ASK_SSL);
             this.request.getConnection().send(packet);
             packet.reset();
 
@@ -230,9 +232,9 @@
             if (packet.getType()!=Constants.TYPE_REP_SSL)
                throw new IOException("Invalid WARP packet type for SSL data");
             WarpSSLData ssldata  = new WarpSSLData();
-            ssldata.ciph = this.packet.readString();
-            ssldata.sess = this.packet.readString();
-            ssldata.size = this.packet.readInteger();
+            ssldata.ciph = packet.readString();
+            ssldata.sess = packet.readString();
+            ssldata.size = packet.readInteger();
             return(ssldata);
         }
 

--
To unsubscribe, e-mail:   <mailto:tomcat-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:tomcat-dev-help@jakarta.apache.org>


Mime
View raw message