Author: markt Date: Mon Jan 11 15:40:04 2016 New Revision: 1724066 URL: http://svn.apache.org/viewvc?rev=1724066&view=rev Log: Refactoring - Add a base class for SSLUtil. Not used much at the moment but I have plans... - Only need to pass SSLHostCondigCertificate when creating SSLUtil since it has a reference to the SSLHostConfig already
Added: tomcat/trunk/java/org/apache/tomcat/util/net/SSLUtilBase.java (with props) Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AbstractJsseEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/SSLHostConfigCertificate.java tomcat/trunk/java/org/apache/tomcat/util/net/SSLImplementation.java tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSEImplementation.java tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSEUtil.java tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLContext.java tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLImplementation.java tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLUtil.java tomcat/trunk/test/org/apache/tomcat/util/net/jsse/TesterBug50640SslImpl.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AbstractJsseEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AbstractJsseEndpoint.java?rev=1724066&r1=1724065&r2=1724066&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/AbstractJsseEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AbstractJsseEndpoint.java Mon Jan 11 15:40:04 2016 @@ -78,7 +78,7 @@ public abstract class AbstractJsseEndpoi for (SSLHostConfig sslHostConfig : sslHostConfigs.values()) { for (SSLHostConfigCertificate certificate : sslHostConfig.getCertificates(true)) { - SSLUtil sslUtil = sslImplementation.getSSLUtil(sslHostConfig, certificate); + SSLUtil sslUtil = sslImplementation.getSSLUtil(certificate); SSLContext sslContext = sslUtil.createSSLContext(negotiableProtocols); sslContext.init(sslUtil.getKeyManagers(), sslUtil.getTrustManagers(), null); Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SSLHostConfigCertificate.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SSLHostConfigCertificate.java?rev=1724066&r1=1724065&r2=1724066&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/SSLHostConfigCertificate.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SSLHostConfigCertificate.java Mon Jan 11 15:40:04 2016 @@ -78,6 +78,11 @@ public class SSLHostConfigCertificate { // Common + public SSLHostConfig getSSLHostConfig() { + return sslHostConfig; + } + + public Type getType() { return type; } Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SSLImplementation.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SSLImplementation.java?rev=1724066&r1=1724065&r2=1724066&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/SSLImplementation.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SSLImplementation.java Mon Jan 11 15:40:04 2016 @@ -66,6 +66,5 @@ public abstract class SSLImplementation public abstract SSLSupport getSSLSupport(SSLSession session); - public abstract SSLUtil getSSLUtil(SSLHostConfig sslHostConfig, - SSLHostConfigCertificate certificate); + public abstract SSLUtil getSSLUtil(SSLHostConfigCertificate certificate); } Added: tomcat/trunk/java/org/apache/tomcat/util/net/SSLUtilBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SSLUtilBase.java?rev=1724066&view=auto ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/SSLUtilBase.java (added) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SSLUtilBase.java Mon Jan 11 15:40:04 2016 @@ -0,0 +1,30 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.tomcat.util.net; + +/** + * Common base class for {@link SSLUtil} implementations. + */ +public abstract class SSLUtilBase implements SSLUtil { + + protected final SSLHostConfigCertificate certificate; + + + protected SSLUtilBase(SSLHostConfigCertificate certificate) { + this.certificate = certificate; + } +} Propchange: tomcat/trunk/java/org/apache/tomcat/util/net/SSLUtilBase.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSEImplementation.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSEImplementation.java?rev=1724066&r1=1724065&r2=1724066&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSEImplementation.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSEImplementation.java Mon Jan 11 15:40:04 2016 @@ -18,7 +18,6 @@ package org.apache.tomcat.util.net.jsse; import javax.net.ssl.SSLSession; -import org.apache.tomcat.util.net.SSLHostConfig; import org.apache.tomcat.util.net.SSLHostConfigCertificate; import org.apache.tomcat.util.net.SSLImplementation; import org.apache.tomcat.util.net.SSLSupport; @@ -46,7 +45,7 @@ public class JSSEImplementation extends } @Override - public SSLUtil getSSLUtil(SSLHostConfig sslHostConfig, SSLHostConfigCertificate certificate) { - return new JSSEUtil(sslHostConfig, certificate); + public SSLUtil getSSLUtil(SSLHostConfigCertificate certificate) { + return new JSSEUtil(certificate); } } Modified: tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSEUtil.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSEUtil.java?rev=1724066&r1=1724065&r2=1724066&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSEUtil.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/jsse/JSSEUtil.java Mon Jan 11 15:40:04 2016 @@ -57,7 +57,7 @@ import org.apache.tomcat.util.file.Confi import org.apache.tomcat.util.net.SSLContext; import org.apache.tomcat.util.net.SSLHostConfig; import org.apache.tomcat.util.net.SSLHostConfigCertificate; -import org.apache.tomcat.util.net.SSLUtil; +import org.apache.tomcat.util.net.SSLUtilBase; import org.apache.tomcat.util.res.StringManager; /** @@ -69,20 +69,19 @@ import org.apache.tomcat.util.res.String * @author EKR * @author Jan Luehe */ -public class JSSEUtil implements SSLUtil { +public class JSSEUtil extends SSLUtilBase { private static final Log log = LogFactory.getLog(JSSEUtil.class); private static final StringManager sm = StringManager.getManager(JSSEUtil.class); private final SSLHostConfig sslHostConfig; - private final SSLHostConfigCertificate certificate; private final String[] defaultServerProtocols; - public JSSEUtil (SSLHostConfig sslHostConfig, SSLHostConfigCertificate certificate) { - this.sslHostConfig = sslHostConfig; - this.certificate = certificate; + public JSSEUtil (SSLHostConfigCertificate certificate) { + super(certificate); + this.sslHostConfig = certificate.getSSLHostConfig(); SSLContext context; try { Modified: tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLContext.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLContext.java?rev=1724066&r1=1724065&r2=1724066&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLContext.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLContext.java Mon Jan 11 15:40:04 2016 @@ -103,9 +103,9 @@ public class OpenSSLContext implements o } } - public OpenSSLContext(SSLHostConfig sslHostConfig, SSLHostConfigCertificate certificate, List<String> negotiableProtocols) + public OpenSSLContext(SSLHostConfigCertificate certificate, List<String> negotiableProtocols) throws SSLException { - this.sslHostConfig = sslHostConfig; + this.sslHostConfig = certificate.getSSLHostConfig(); this.certificate = certificate; aprPool = Pool.create(0); boolean success = false; Modified: tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLImplementation.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLImplementation.java?rev=1724066&r1=1724065&r2=1724066&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLImplementation.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLImplementation.java Mon Jan 11 15:40:04 2016 @@ -18,7 +18,6 @@ package org.apache.tomcat.util.net.opens import javax.net.ssl.SSLSession; -import org.apache.tomcat.util.net.SSLHostConfig; import org.apache.tomcat.util.net.SSLHostConfigCertificate; import org.apache.tomcat.util.net.SSLImplementation; import org.apache.tomcat.util.net.SSLSupport; @@ -33,8 +32,8 @@ public class OpenSSLImplementation exten } @Override - public SSLUtil getSSLUtil(SSLHostConfig sslHostConfig, SSLHostConfigCertificate certificate) { - return new OpenSSLUtil(sslHostConfig, certificate); + public SSLUtil getSSLUtil(SSLHostConfigCertificate certificate) { + return new OpenSSLUtil(certificate); } } Modified: tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLUtil.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLUtil.java?rev=1724066&r1=1724065&r2=1724066&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLUtil.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/openssl/OpenSSLUtil.java Mon Jan 11 15:40:04 2016 @@ -25,24 +25,22 @@ import javax.net.ssl.TrustManager; import org.apache.tomcat.util.net.SSLContext; import org.apache.tomcat.util.net.SSLHostConfig; import org.apache.tomcat.util.net.SSLHostConfigCertificate; -import org.apache.tomcat.util.net.SSLUtil; +import org.apache.tomcat.util.net.SSLUtilBase; import org.apache.tomcat.util.net.jsse.JSSEUtil; -public class OpenSSLUtil implements SSLUtil { +public class OpenSSLUtil extends SSLUtilBase { - private final SSLHostConfig sslHostConfig; - private final SSLHostConfigCertificate certificate; private final JSSEUtil jsseUtil; private String[] enabledProtocols = null; private String[] enabledCiphers = null; - public OpenSSLUtil(SSLHostConfig sslHostConfig, SSLHostConfigCertificate certificate) { - this.sslHostConfig = sslHostConfig; - this.certificate = certificate; + public OpenSSLUtil(SSLHostConfigCertificate certificate) { + super(certificate); + if (certificate.getCertificateFile() == null) { // Using JSSE configuration for keystore and truststore - jsseUtil = new JSSEUtil(sslHostConfig, certificate); + jsseUtil = new JSSEUtil(certificate); } else { // Use OpenSSL configuration for certificates jsseUtil = null; @@ -51,7 +49,7 @@ public class OpenSSLUtil implements SSLU @Override public SSLContext createSSLContext(List<String> negotiableProtocols) throws Exception { - return new OpenSSLContext(sslHostConfig, certificate, negotiableProtocols); + return new OpenSSLContext(certificate, negotiableProtocols); } @Override Modified: tomcat/trunk/test/org/apache/tomcat/util/net/jsse/TesterBug50640SslImpl.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/net/jsse/TesterBug50640SslImpl.java?rev=1724066&r1=1724065&r2=1724066&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/tomcat/util/net/jsse/TesterBug50640SslImpl.java (original) +++ tomcat/trunk/test/org/apache/tomcat/util/net/jsse/TesterBug50640SslImpl.java Mon Jan 11 15:40:04 2016 @@ -27,11 +27,12 @@ public class TesterBug50640SslImpl exten @Override - public SSLUtil getSSLUtil(SSLHostConfig sslHostConfig, SSLHostConfigCertificate certificate) { + public SSLUtil getSSLUtil(SSLHostConfigCertificate certificate) { + SSLHostConfig sslHostConfig = certificate.getSSLHostConfig(); if (sslHostConfig.getProtocols().size() == 1 && sslHostConfig.getProtocols().contains(PROPERTY_VALUE)) { sslHostConfig.setProtocols("TLSv1,TLSv1.1,TLSv1.2"); - return super.getSSLUtil(sslHostConfig, certificate); + return super.getSSLUtil(certificate); } else { return null; } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org