remm 2005/07/08 07:19:04
Modified: util/java/org/apache/tomcat/util/net AprEndpoint.java
http11/src/java/org/apache/coyote/http11
Http11AprProtocol.java
Log:
- Add some basic configuration for protocol and client cert.
Revision Changes Path
1.61 +31 -5
jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/net/AprEndpoint.java
Index: AprEndpoint.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/net/AprEndpoint.java,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -r1.60 -r1.61
--- AprEndpoint.java 7 Jul 2005 14:26:25 -0000 1.60
+++ AprEndpoint.java 8 Jul 2005 14:19:04 -0000 1.61
@@ -343,6 +343,14 @@
/**
+ * SSL protocols.
+ */
+ protected String SSLProtocol = "all";
+ public String getSSLProtocol() { return SSLProtocol; }
+ public void setSSLProtocol(String SSLProtocol) { this.SSLProtocol =
SSLProtocol; }
+
+
+ /**
* SSL password (if a cert is encrypted, and no password has been
provided, a callback
* will ask for a password).
*/
@@ -418,9 +426,9 @@
/**
* SSL verify client.
*/
- protected int SSLVerifyClient = 0;
- public int getSSLVerifyClient() { return SSLVerifyClient; }
- public void setSSLVerifyClient(int SSLVerifyClient) {
this.SSLVerifyClient = SSLVerifyClient; }
+ protected String SSLVerifyClient = "none";
+ public String getSSLVerifyClient() { return SSLVerifyClient; }
+ public void setSSLVerifyClient(String SSLVerifyClient) {
this.SSLVerifyClient = SSLVerifyClient; }
/**
@@ -527,8 +535,17 @@
} else {
SSL.initialize(SSLEngine);
}
+ // SSL protocol
+ int value = SSL.SSL_PROTOCOL_ALL;
+ if ("SSLv2".equalsIgnoreCase(SSLProtocol)) {
+ value = SSL.SSL_PROTOCOL_SSLV2;
+ } else if ("SSLv3".equalsIgnoreCase(SSLProtocol)) {
+ value = SSL.SSL_PROTOCOL_SSLV3;
+ } else if ("TLSv1".equalsIgnoreCase(SSLProtocol)) {
+ value = SSL.SSL_PROTOCOL_TLSV1;
+ }
// Create SSL Context
- sslContext = SSLContext.make(rootPool, SSL.SSL_PROTOCOL_SSLV2 |
SSL.SSL_PROTOCOL_SSLV3, SSL.SSL_MODE_SERVER);
+ sslContext = SSLContext.make(rootPool, value,
SSL.SSL_MODE_SERVER);
// List the ciphers that the client is permitted to negotiate
SSLContext.setCipherSuite(sslContext, SSLCipherSuite);
// Load Server key and certificate
@@ -537,7 +554,16 @@
if (SSLCACertificateFile != null) {
SSLContext.setCACertificate(sslContext,
SSLCACertificateFile, null);
}
- SSLContext.setVerify(sslContext, SSLVerifyClient,
SSLVerifyDepth);
+ // Client certificate verification
+ value = SSL.SSL_CVERIFY_NONE;
+ if ("optional".equalsIgnoreCase(SSLVerifyClient)) {
+ value = SSL.SSL_CVERIFY_OPTIONAL;
+ } else if ("require".equalsIgnoreCase(SSLVerifyClient)) {
+ value = SSL.SSL_CVERIFY_REQUIRE;
+ } else if ("optionalNoCA".equalsIgnoreCase(SSLVerifyClient)) {
+ value = SSL.SSL_CVERIFY_OPTIONAL_NO_CA;
+ }
+ SSLContext.setVerify(sslContext, value, SSLVerifyDepth);
// For now, sendfile is not supported with SSL
useSendfile = false;
}
1.15 +9 -2
jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11AprProtocol.java
Index: Http11AprProtocol.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11AprProtocol.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- Http11AprProtocol.java 7 Jul 2005 22:54:13 -0000 1.14
+++ Http11AprProtocol.java 8 Jul 2005 14:19:04 -0000 1.15
@@ -501,6 +501,13 @@
/**
+ * SSL protocol.
+ */
+ public String getSSLProtocol() { return ep.getSSLProtocol(); }
+ public void setSSLProtocol(String SSLProtocol) {
ep.setSSLProtocol(SSLProtocol); }
+
+
+ /**
* SSL password (if a cert is encrypted, and no password has been
provided, a callback
* will ask for a password).
*/
@@ -567,8 +574,8 @@
/**
* SSL verify client.
*/
- public int getSSLVerifyClient() { return ep.getSSLVerifyClient(); }
- public void setSSLVerifyClient(int SSLVerifyClient) {
ep.setSSLVerifyClient(SSLVerifyClient); }
+ public String getSSLVerifyClient() { return ep.getSSLVerifyClient(); }
+ public void setSSLVerifyClient(String SSLVerifyClient) {
ep.setSSLVerifyClient(SSLVerifyClient); }
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]