remm 2005/07/13 04:05:20
Modified: http11/src/java/org/apache/coyote/http11
Http11AprProcessor.java
Log:
- Fix array length if no client certs.
Revision Changes Path
1.24 +22 -25
jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11AprProcessor.java
Index: Http11AprProcessor.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11AprProcessor.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- Http11AprProcessor.java 12 Jul 2005 17:01:42 -0000 1.23
+++ Http11AprProcessor.java 13 Jul 2005 11:05:19 -0000 1.24
@@ -1085,22 +1085,20 @@
request.setAttribute
("javax.servlet.request.cipher_suite", sslO);
int certLength = SSLSocket.getInfoI(socket,
SSL.SSL_INFO_CLIENT_CERT_CHAIN);
- X509Certificate[] certs = new
X509Certificate[certLength];
- for (int i = 0; i < certLength; i++) {
- byte[] data = SSLSocket.getInfoB(socket,
SSL.SSL_INFO_CLIENT_CERT_CHAIN + i);
- CertificateFactory cf =
- CertificateFactory.getInstance("X.509");
- ByteArrayInputStream stream = new
ByteArrayInputStream(data);
- certs[i] = (X509Certificate)
cf.generateCertificate(stream);
- }
+ X509Certificate[] certs = null;
if (certLength > 0) {
- sslO = certs;
- } else {
- sslO = null;
+ certs = new X509Certificate[certLength];
+ for (int i = 0; i < certLength; i++) {
+ byte[] data = SSLSocket.getInfoB(socket,
SSL.SSL_INFO_CLIENT_CERT_CHAIN + i);
+ CertificateFactory cf =
+ CertificateFactory.getInstance("X.509");
+ ByteArrayInputStream stream = new
ByteArrayInputStream(data);
+ certs[i] = (X509Certificate)
cf.generateCertificate(stream);
+ }
}
- if (sslO != null)
+ if (certs != null)
request.setAttribute
- ("javax.servlet.request.X509Certificate", sslO);
+ ("javax.servlet.request.X509Certificate", certs);
sslO = new Integer(SSLSocket.getInfoI(socket,
SSL.SSL_INFO_CIPHER_USEKEYSIZE));
if (sslO != null)
request.setAttribute
@@ -1130,21 +1128,20 @@
// FIXME: Verify this is the right thing to do
SSLSocket.renegotiate(socket);
int certLength = SSLSocket.getInfoI(socket,
SSL.SSL_INFO_CLIENT_CERT_CHAIN);
- X509Certificate[] certs = new
X509Certificate[certLength];
- for (int i = 0; i < certLength; i++) {
- byte[] data = SSLSocket.getInfoB(socket,
SSL.SSL_INFO_CLIENT_CERT_CHAIN + i);
- CertificateFactory cf =
- CertificateFactory.getInstance("X.509");
- ByteArrayInputStream stream = new
ByteArrayInputStream(data);
- certs[i] = (X509Certificate)
cf.generateCertificate(stream);
- }
- Object sslO = null;
+ X509Certificate[] certs = null;
if (certLength > 0) {
- sslO = certs;
+ certs = new X509Certificate[certLength];
+ for (int i = 0; i < certLength; i++) {
+ byte[] data = SSLSocket.getInfoB(socket,
SSL.SSL_INFO_CLIENT_CERT_CHAIN + i);
+ CertificateFactory cf =
+ CertificateFactory.getInstance("X.509");
+ ByteArrayInputStream stream = new
ByteArrayInputStream(data);
+ certs[i] = (X509Certificate)
cf.generateCertificate(stream);
+ }
}
- if (sslO != null)
+ if (certs != null)
request.setAttribute
- ("javax.servlet.request.X509Certificate", sslO);
+ ("javax.servlet.request.X509Certificate", certs);
} catch (Exception e) {
log.warn("Exception getting SSL Cert", e);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]