From d75767172b5916b9f4fda28105dd7a474c89cde7 Mon Sep 17 00:00:00 2001 From: fhanik Date: Tue, 25 Nov 2008 18:00:43 +0000 Subject: [PATCH] Implement setter for keyalias, not used yet git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@720553 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/coyote/http11/Http11NioProtocol.java | 4 +++ java/org/apache/tomcat/util/net/NioEndpoint.java | 29 +++++++++++++++++++--- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/java/org/apache/coyote/http11/Http11NioProtocol.java b/java/org/apache/coyote/http11/Http11NioProtocol.java index a49567fce..631551364 100644 --- a/java/org/apache/coyote/http11/Http11NioProtocol.java +++ b/java/org/apache/coyote/http11/Http11NioProtocol.java @@ -545,6 +545,10 @@ public class Http11NioProtocol implements ProtocolHandler, MBeanRegistration public void setKeystore(String s) { setKeystoreFile(s);} public String getKeystore(){ return getKeystoreFile();} + public String getKeyAlias() { return ep.getKeyAlias();} + public void setKeyAlias(String s ) { ep.setKeyAlias(s);} + + public String getAlgorithm() { return ep.getAlgorithm();} public void setAlgorithm(String s ) { ep.setAlgorithm(s);} diff --git a/java/org/apache/tomcat/util/net/NioEndpoint.java b/java/org/apache/tomcat/util/net/NioEndpoint.java index ef2baa0d1..31eb7e02a 100644 --- a/java/org/apache/tomcat/util/net/NioEndpoint.java +++ b/java/org/apache/tomcat/util/net/NioEndpoint.java @@ -44,16 +44,20 @@ import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; + +import javax.net.ssl.KeyManager; import javax.net.ssl.KeyManagerFactory; import javax.net.ssl.SSLContext; import javax.net.ssl.SSLEngine; import javax.net.ssl.TrustManagerFactory; +import javax.net.ssl.X509KeyManager; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.IntrospectionUtils; import org.apache.tomcat.util.net.JIoEndpoint.Worker; import org.apache.tomcat.util.net.SecureNioChannel.ApplicationBufferHandler; +import org.apache.tomcat.util.net.jsse.JSSEKeyManager; import org.apache.tomcat.util.res.StringManager; /** @@ -571,6 +575,11 @@ public class NioEndpoint { } public void setKeystore(String s ) { setKeystoreFile(s);} public String getKeystore() { return getKeystoreFile();} + + String keyAlias = null; + public String getKeyAlias() { return keyAlias;} + public void setKeyAlias(String s ) { keyAlias = s;} + protected String algorithm = "SunX509"; public String getAlgorithm() { return algorithm;} @@ -776,8 +785,8 @@ public class NioEndpoint { ks.load(new FileInputStream(getKeystoreFile()), passphrase); KeyStore ts = null; if (getTruststoreFile()==null) { - ts = KeyStore.getInstance(getKeystoreType()); - ts.load(new FileInputStream(getKeystoreFile()), passphrase); +// ts = KeyStore.getInstance(getKeystoreType()); +// ts.load(new FileInputStream(getKeystoreFile()), passphrase); }else { ts = KeyStore.getInstance(ttype); ts.load(new FileInputStream(getTruststoreFile()), tpassphrase); @@ -790,7 +799,7 @@ public class NioEndpoint { tmf.init(ts); sslContext = SSLContext.getInstance(getSslProtocol()); - sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null); + sslContext.init(wrap(kmf.getKeyManagers()), tmf.getTrustManagers(), null); } if (oomParachute>0) reclaimParachute(true); @@ -798,6 +807,20 @@ public class NioEndpoint { initialized = true; } + + public KeyManager[] wrap(KeyManager[] managers) { + return managers; +// if (managers==null) return null; +// KeyManager[] result = new KeyManager[managers.length]; +// for (int i=0; i