billbarker 2002/12/18 01:15:06
Modified: jk/java/org/apache/jk/common HandlerRequest.java
jk/java/org/apache/jk/core WorkerEnv.java
jk/java/org/apache/jk/server JkCoyoteHandler.java
Log:
Fixing the mess that was SSL-Cert evalulation for Jk2.
Fix for Bug #15456
Reported By: Alex Roytman [EMAIL PROTECTED]
Revision Changes Path
1.19 +7 -6
jakarta-tomcat-connectors/jk/java/org/apache/jk/common/HandlerRequest.java
Index: HandlerRequest.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/HandlerRequest.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- HandlerRequest.java 23 Nov 2002 06:34:47 -0000 1.18
+++ HandlerRequest.java 18 Dec 2002 09:15:06 -0000 1.19
@@ -529,16 +529,17 @@
msg.getBytes(req.instanceId());
break;
- case SC_A_SSL_CERT :
- req.scheme().setString( "https" );
+ case SC_A_SSL_CERT :
+ req.scheme().setString( "https" );
// Transform the string into certificate.
+ tmpMB = new MessageBytes();
msg.getBytes(tmpMB);
String certString = tmpMB.toString();
- // SSL certificate extraction is costy, moved to
JkCoyoteHandler
- req.setAttribute(SSLSupport.CERTIFICATE_KEY, certString);
+ // SSL certificate extraction is costy, moved to JkCoyoteHandler
+ req.setNote(WorkerEnv.SSL_CERT_NOTE, tmpMB);
break;
-
- case SC_A_SSL_CIPHER :
+
+ case SC_A_SSL_CIPHER :
req.scheme().setString( "https" );
msg.getBytes(tmpMB);
req.setAttribute(SSLSupport.CIPHER_SUITE_KEY,
1.9 +1 -0
jakarta-tomcat-connectors/jk/java/org/apache/jk/core/WorkerEnv.java
Index: WorkerEnv.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/core/WorkerEnv.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- WorkerEnv.java 5 Jun 2002 21:23:32 -0000 1.8
+++ WorkerEnv.java 18 Dec 2002 09:15:06 -0000 1.9
@@ -82,6 +82,7 @@
public static final int ENDPOINT_NOTE=0;
public static final int REQUEST_NOTE=1;
+ public static final int SSL_CERT_NOTE=16;
int noteId[]=new int[4];
String noteName[][]=new String[4][];
private Object notes[]=new Object[32];
1.32 +21 -19
jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java
Index: JkCoyoteHandler.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- JkCoyoteHandler.java 23 Nov 2002 06:34:47 -0000 1.31
+++ JkCoyoteHandler.java 18 Dec 2002 09:15:06 -0000 1.32
@@ -381,27 +381,29 @@
} else if( actionCode==ActionCode.ACTION_REQ_SSL_ATTRIBUTE ) {
org.apache.coyote.Request req=(org.apache.coyote.Request)param;
- // Extract SSL certificate information (if requested)
- String certString =
(String)req.getAttribute(SSLSupport.CERTIFICATE_KEY);
- byte[] certData = certString.getBytes();
- ByteArrayInputStream bais = new ByteArrayInputStream(certData);
+ // Extract SSL certificate information (if requested)
+ MessageBytes certString =
(MessageBytes)req.getNote(WorkerEnv.SSL_CERT_NOTE);
+ if( certString != null ) {
+ byte[] certData = certString.getByteChunk().getBytes();
+ ByteArrayInputStream bais = new ByteArrayInputStream(certData);
- // Fill the first element.
- X509Certificate jsseCerts[] = null;
- try {
- CertificateFactory cf =
- CertificateFactory.getInstance("X.509");
- X509Certificate cert = (X509Certificate)
- cf.generateCertificate(bais);
- jsseCerts = new X509Certificate[1];
- jsseCerts[0] = cert;
- } catch(java.security.cert.CertificateException e) {
- log.error("Certificate convertion failed" + e );
- e.printStackTrace();
- }
+ // Fill the first element.
+ X509Certificate jsseCerts[] = null;
+ try {
+ CertificateFactory cf =
+ CertificateFactory.getInstance("X.509");
+ X509Certificate cert = (X509Certificate)
+ cf.generateCertificate(bais);
+ jsseCerts = new X509Certificate[1];
+ jsseCerts[0] = cert;
+ } catch(java.security.cert.CertificateException e) {
+ log.error("Certificate convertion failed" , e );
+ return;
+ }
- req.setAttribute(SSLSupport.CERTIFICATE_KEY,
- jsseCerts);
+ req.setAttribute(SSLSupport.CERTIFICATE_KEY,
+ jsseCerts);
+ }
} else if( actionCode==ActionCode.ACTION_REQ_HOST_ATTRIBUTE ) {
org.apache.coyote.Request req=(org.apache.coyote.Request)param;
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>