Skip to content
Permalink
Browse files
Merge pull request #96 from xenoamess-fork/upgrade_ftpserver
upgrade ftpserver to 1.1.2
  • Loading branch information
garydgregory committed Jan 1, 2022
2 parents d803cfa + c1e78bf commit d5cec71856036d873501241f69c9472f2a9ca811
Showing 3 changed files with 74 additions and 3 deletions.
@@ -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>
@@ -37,6 +37,7 @@
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 static void setUpClass() throws Exception {
/**
* 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 @@ private synchronized static void setUpClass(final boolean implicit) throws FtpEx
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
@@ -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();
}

}

0 comments on commit d5cec71

Please sign in to comment.