Author: fhanik
Date: Fri Sep 14 14:10:11 2007
New Revision: 575793
URL: http://svn.apache.org/viewvc?rev=575793&view=rev
Log:
Use a truststore if defined bz
http://issues.apache.org/bugzilla/show_bug.cgi?id=43356
Modified:
tomcat/sandbox/gdev6x/java/org/apache/coyote/http11/Http11NioProtocol.java
tomcat/sandbox/gdev6x/java/org/apache/tomcat/util/net/NioEndpoint.java
Modified:
tomcat/sandbox/gdev6x/java/org/apache/coyote/http11/Http11NioProtocol.java
URL:
http://svn.apache.org/viewvc/tomcat/sandbox/gdev6x/java/org/apache/coyote/http11/Http11NioProtocol.java?rev=575793&r1=575792&r2=575793&view=diff
==============================================================================
--- tomcat/sandbox/gdev6x/java/org/apache/coyote/http11/Http11NioProtocol.java
(original)
+++ tomcat/sandbox/gdev6x/java/org/apache/coyote/http11/Http11NioProtocol.java
Fri Sep 14 14:10:11 2007
@@ -547,17 +547,25 @@
public String getAlgorithm() { return ep.getAlgorithm();}
public void setAlgorithm(String s ) { ep.setAlgorithm(s);}
- public boolean getClientAuth() { return ep.getClientAuth();}
- public void setClientAuth(boolean b ) { ep.setClientAuth(b);}
+ public void setClientauth(String s) {setClientAuth(s);}
+ public String getClientauth(){ return getClientAuth();}
+ public String getClientAuth() { return ep.getClientAuth();}
+ public void setClientAuth(String s ) { ep.setClientAuth(s);}
public String getKeystorePass() { return ep.getKeystorePass();}
public void setKeystorePass(String s ) { ep.setKeystorePass(s);}
public void setKeypass(String s) { setKeystorePass(s);}
public String getKeypass() { return getKeystorePass();}
-
-
public String getKeystoreType() { return ep.getKeystoreType();}
public void setKeystoreType(String s ) { ep.setKeystoreType(s);}
+
+ public void setTruststoreFile(String f){ep.setTruststoreFile(f);}
+ public String getTruststoreFile(){return ep.getTruststoreFile();}
+ public void setTruststorePass(String p){ep.setTruststorePass(p);}
+ public String getTruststorePass(){return ep.getTruststorePass();}
+ public void setTruststoreType(String t){ep.setTruststoreType(t);}
+ public String getTruststoreType(){ return ep.getTruststoreType();}
+
public String getSslProtocol() { return ep.getSslProtocol();}
public void setSslProtocol(String s) { ep.setSslProtocol(s);}
Modified: tomcat/sandbox/gdev6x/java/org/apache/tomcat/util/net/NioEndpoint.java
URL:
http://svn.apache.org/viewvc/tomcat/sandbox/gdev6x/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=575793&r1=575792&r2=575793&view=diff
==============================================================================
--- tomcat/sandbox/gdev6x/java/org/apache/tomcat/util/net/NioEndpoint.java
(original)
+++ tomcat/sandbox/gdev6x/java/org/apache/tomcat/util/net/NioEndpoint.java Fri
Sep 14 14:10:11 2007
@@ -518,10 +518,42 @@
}
+ public String adjustRelativePath(String path, String relativeTo) {
+ File f = new File(path);
+ if ( !f.isAbsolute()) {
+ path = relativeTo + File.separator + path;
+ f = new File(path);
+ }
+ if (!f.exists()) {
+ log.warn("configured file:["+path+"] does not exist.");
+ }
+ return path;
+ }
+
+ public String defaultIfNull(String val, String defaultValue) {
+ if (val==null) return defaultValue;
+ else return val;
+ }
// -------------------- SSL related properties --------------------
+ protected String truststoreFile =
System.getProperty("javax.net.ssl.trustStore");
+ public void setTruststoreFile(String s) {
+ s = adjustRelativePath(s,System.getProperty("catalina.base"));
+ this.truststoreFile = s;
+ }
+ public String getTruststoreFile() {return truststoreFile;}
+ protected String truststorePass =
System.getProperty("javax.net.ssl.trustStorePassword");
+ public void setTruststorePass(String truststorePass) {this.truststorePass
= truststorePass;}
+ public String getTruststorePass() {return truststorePass;}
+ protected String truststoreType =
System.getProperty("javax.net.ssl.trustStoreType");
+ public void setTruststoreType(String truststoreType) {this.truststoreType
= truststoreType;}
+ public String getTruststoreType() {return truststoreType;}
+
protected String keystoreFile =
System.getProperty("user.home")+"/.keystore";
public String getKeystoreFile() { return keystoreFile;}
- public void setKeystoreFile(String s ) { this.keystoreFile = s; }
+ public void setKeystoreFile(String s ) {
+ s = adjustRelativePath(s,System.getProperty("catalina.base"));
+ this.keystoreFile = s;
+ }
public void setKeystore(String s ) { setKeystoreFile(s);}
public String getKeystore() { return getKeystoreFile();}
@@ -529,9 +561,9 @@
public String getAlgorithm() { return algorithm;}
public void setAlgorithm(String s ) { this.algorithm = s;}
- protected boolean clientAuth = false;
- public boolean getClientAuth() { return clientAuth;}
- public void setClientAuth(boolean b ) { this.clientAuth = b;}
+ protected String clientAuth = "false";
+ public String getClientAuth() { return clientAuth;}
+ public void setClientAuth(String s ) { this.clientAuth = s;}
protected String keystorePass = "changeit";
public String getKeystorePass() { return keystorePass;}
@@ -601,6 +633,7 @@
this.oomParachuteData = oomParachuteData;
}
+
protected SSLContext sslContext = null;
public SSLContext getSSLContext() { return sslContext;}
public void setSSLContext(SSLContext c) { sslContext = c;}
@@ -723,10 +756,19 @@
// Initialize SSL
char[] passphrase = getKeystorePass().toCharArray();
+ char[] tpassphrase =
(getTruststorePass()!=null)?getTruststorePass().toCharArray():passphrase;
+ String ttype =
(getTruststoreType()!=null)?getTruststoreType():getKeystoreType();
+
KeyStore ks = KeyStore.getInstance(getKeystoreType());
ks.load(new FileInputStream(getKeystoreFile()), passphrase);
- KeyStore ts = KeyStore.getInstance(getKeystoreType());
- ts.load(new FileInputStream(getKeystoreFile()), passphrase);
+ KeyStore ts = null;
+ if (getTruststoreFile()==null) {
+ ts = KeyStore.getInstance(getKeystoreType());
+ ts.load(new FileInputStream(getKeystoreFile()), passphrase);
+ }else {
+ ts = KeyStore.getInstance(ttype);
+ ts.load(new FileInputStream(getTruststoreFile()), tpassphrase);
+ }
KeyManagerFactory kmf =
KeyManagerFactory.getInstance(getAlgorithm());
kmf.init(ks, passphrase);
@@ -736,7 +778,6 @@
sslContext = SSLContext.getInstance(getSslProtocol());
sslContext.init(kmf.getKeyManagers(), tmf.getTrustManagers(),
null);
-
}
if (oomParachute>0) reclaimParachute(true);
@@ -896,6 +937,7 @@
return oomParachuteData;
}
+
/**
* Unlock the server socket accept using a bogus connection.
*/
@@ -978,7 +1020,14 @@
protected SSLEngine createSSLEngine() {
SSLEngine engine = sslContext.createSSLEngine();
- engine.setNeedClientAuth(getClientAuth());
+ if ("false".equals(getClientAuth())) {
+ engine.setNeedClientAuth(false);
+ engine.setWantClientAuth(false);
+ } else if ("true".equals(getClientAuth()) ||
"yes".equals(getClientAuth())){
+ engine.setNeedClientAuth(true);
+ } else if ("want".equals(getClientAuth())) {
+ engine.setWantClientAuth(true);
+ }
engine.setUseClientMode(false);
if ( ciphersarr.length > 0 ) engine.setEnabledCipherSuites(ciphersarr);
if ( sslEnabledProtocolsarr.length > 0 )
engine.setEnabledProtocols(sslEnabledProtocolsarr);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]