This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-net.git
The following commit(s) were added to refs/heads/master by this push: new c1e78bf upgrade ftpserver to 1.1.2 new d5cec71 Merge pull request #96 from xenoamess-fork/upgrade_ftpserver c1e78bf is described below commit c1e78bf431e4284a7edf71e68c26afb7696332db Author: XenoAmess <xenoam...@gmail.com> AuthorDate: Sat Jan 1 14:57:06 2022 +0800 upgrade ftpserver to 1.1.2 --- pom.xml | 2 +- .../org/apache/commons/net/ftp/FTPSClientTest.java | 7 ++- .../net/ftp/NoProtocolSslConfigurationProxy.java | 68 ++++++++++++++++++++++ 3 files changed, 74 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 5b688aa..fa2d14e 100644 --- a/pom.xml +++ b/pom.xml @@ -103,7 +103,7 @@ Supported protocols include: Echo, Finger, FTP, NNTP, NTP, POP3(S), SMTP(S), Tel <dependency> <groupId>org.apache.ftpserver</groupId> <artifactId>ftpserver-core</artifactId> - <version>1.1.1</version> + <version>1.1.2</version> <scope>test</scope> </dependency> <dependency> diff --git a/src/test/java/org/apache/commons/net/ftp/FTPSClientTest.java b/src/test/java/org/apache/commons/net/ftp/FTPSClientTest.java index 48a7fa2..5ef169b 100644 --- a/src/test/java/org/apache/commons/net/ftp/FTPSClientTest.java +++ b/src/test/java/org/apache/commons/net/ftp/FTPSClientTest.java @@ -37,6 +37,7 @@ import org.apache.ftpserver.FtpServerFactory; import org.apache.ftpserver.ftplet.FtpException; import org.apache.ftpserver.ftplet.UserManager; import org.apache.ftpserver.listener.ListenerFactory; +import org.apache.ftpserver.ssl.SslConfiguration; import org.apache.ftpserver.ssl.SslConfigurationFactory; import org.apache.ftpserver.usermanager.PropertiesUserManagerFactory; import org.apache.ftpserver.usermanager.impl.BaseUser; @@ -99,7 +100,7 @@ public class FTPSClientTest { /** * Creates and starts an embedded Apache MINA FTP Server. * - * @param IMPLICIT FTPS connection mode + * @param implicit FTPS connection mode * @throws FtpException */ private synchronized static void setUpClass(final boolean implicit) throws FtpException { @@ -135,7 +136,9 @@ public class FTPSClientTest { sllConfigFactory.setKeystorePassword("password"); // set the SSL configuration for the listener - factory.setSslConfiguration(sllConfigFactory.createSslConfiguration()); + SslConfiguration sslConfiguration = sllConfigFactory.createSslConfiguration(); + NoProtocolSslConfigurationProxy noProtocolSslConfigurationProxy = new NoProtocolSslConfigurationProxy(sslConfiguration); + factory.setSslConfiguration(noProtocolSslConfigurationProxy); factory.setImplicitSsl(implicit); // replace the default listener diff --git a/src/test/java/org/apache/commons/net/ftp/NoProtocolSslConfigurationProxy.java b/src/test/java/org/apache/commons/net/ftp/NoProtocolSslConfigurationProxy.java new file mode 100644 index 0000000..096d7ea --- /dev/null +++ b/src/test/java/org/apache/commons/net/ftp/NoProtocolSslConfigurationProxy.java @@ -0,0 +1,68 @@ +/* + * 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.commons.net.ftp; + +import java.security.GeneralSecurityException; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocketFactory; + +import org.apache.ftpserver.ssl.ClientAuth; +import org.apache.ftpserver.ssl.SslConfiguration; + +/** + * see https://issues.apache.org/jira/browse/FTPSERVER-491 + */ +public class NoProtocolSslConfigurationProxy implements SslConfiguration { + + @Override + public String getEnabledProtocol() { + return null; + } + + private final SslConfiguration sslConfiguration; + + public NoProtocolSslConfigurationProxy(SslConfiguration sslConfiguration) { + this.sslConfiguration = sslConfiguration; + } + + @Override + public SSLSocketFactory getSocketFactory() throws GeneralSecurityException { + return this.sslConfiguration.getSocketFactory(); + } + + @Override + public SSLContext getSSLContext() throws GeneralSecurityException { + return this.sslConfiguration.getSSLContext(); + } + + @Override + public SSLContext getSSLContext(String protocol) throws GeneralSecurityException { + return this.sslConfiguration.getSSLContext(protocol); + } + + @Override + public String[] getEnabledCipherSuites() { + return this.sslConfiguration.getEnabledCipherSuites(); + } + + @Override + public ClientAuth getClientAuth() { + return this.sslConfiguration.getClientAuth(); + } + +}