jfclere     01/09/18 05:29:30

  Modified:    src/share/org/apache/tomcat/modules/server Ajp13.java
  Log:
  Arrange "javax.servlet.request.X509Certificate" so that it follows the spec's
  Note that it is only the first certificate of the chain.
  
  Revision  Changes    Path
  1.27      +22 -1     
jakarta-tomcat/src/share/org/apache/tomcat/modules/server/Ajp13.java
  
  Index: Ajp13.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat/src/share/org/apache/tomcat/modules/server/Ajp13.java,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- Ajp13.java        2001/09/14 16:01:21     1.26
  +++ Ajp13.java        2001/09/18 12:29:30     1.27
  @@ -65,7 +65,11 @@
   import java.io.OutputStream;
   import java.net.Socket;
   import java.util.Enumeration;
  +import java.io.ByteArrayInputStream;
   
  +import java.security.cert.X509Certificate;
  +import java.security.cert.CertificateFactory;
  +
   import org.apache.tomcat.core.*;
   import org.apache.tomcat.util.*;
   import org.apache.tomcat.util.http.MimeHeaders;
  @@ -376,8 +380,25 @@
   
            case SC_A_SSL_CERT     :
                isSSL = true;
  +                // Transform the string into certificate.
  +                String certString = msg.getString();
  +                byte[] certData = certString.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) {
  +                    d("Certificate convertion failed" + e );
  +                }
                req.setAttribute("javax.servlet.request.X509Certificate",
  -                              msg.getString());
  +                              jsseCerts);
                   break;
   
            case SC_A_SSL_CIPHER   :
  
  
  

Reply via email to