Glen Nakamura wrote:
>
> 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 think I have fixed the problem... Could you retest it with the lastest CVS?
> 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:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>