Browse Source

Make Changes to Support FTPS AntTaskDef that extends FTP but uses FTPSClient.

master
Santosh R Dhariwal 3 years ago
parent
commit
ea685c68d2
2 changed files with 24 additions and 49 deletions
  1. +24
    -6
      src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java
  2. +0
    -43
      src/main/org/apache/tools/ant/taskdefs/optional/net/FTPS.java

+ 24
- 6
src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java View File

@@ -46,6 +46,7 @@ import org.apache.commons.net.ftp.FTPClientConfig;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import org.apache.commons.net.ftp.FTPConnectionClosedException;
import org.apache.commons.net.ftp.FTPSClient;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.DirectoryScanner;
import org.apache.tools.ant.Project;
@@ -59,6 +60,8 @@ import org.apache.tools.ant.util.RetryHandler;
import org.apache.tools.ant.util.Retryable;
import org.apache.tools.ant.util.VectorSet;

import javax.net.ssl.HostnameVerifier;

/**
* Basic FTP client. Performs the following actions:
* <ul>
@@ -112,6 +115,8 @@ public class FTP extends Task implements FTPTaskConfig {
private String userid;
private String password;
private String account;
private boolean useFtps =false;
private HostnameVerifier hostnameVerifier;
private File listing;
private boolean binary = true;
private boolean passive = false;
@@ -1263,6 +1268,17 @@ public class FTP extends Task implements FTPTaskConfig {
this.userid = userid;
}

public void setUseFtps(boolean useFtps) {
this.useFtps = useFtps;
}

public HostnameVerifier getHostnameVerifier() {
return hostnameVerifier;
}

public void setHostnameVerifier(HostnameVerifier hostnameVerifier) {
this.hostnameVerifier = hostnameVerifier;
}

/**
* Sets the login password for the given user id.
@@ -2488,10 +2504,6 @@ public class FTP extends Task implements FTPTaskConfig {
return result;
}

protected FTPClient getFTPClient(){
return new FTPClient();
}

/**
* Runs the task.
*
@@ -2506,8 +2518,14 @@ public class FTP extends Task implements FTPTaskConfig {

try {
log("Opening FTP connection to " + server, Project.MSG_VERBOSE);

ftp = getFTPClient();
if( useFtps) {
ftp = new FTPSClient();
if(hostnameVerifier != null){
((FTPSClient)ftp).setHostnameVerifier(hostnameVerifier);
}
}else{
ftp = new FTPClient();
}
if (this.isConfigurationSet) {
ftp = FTPConfigurator.configure(ftp, this);
}


+ 0
- 43
src/main/org/apache/tools/ant/taskdefs/optional/net/FTPS.java View File

@@ -1,43 +0,0 @@
/*
* 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
*
* https://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.tools.ant.taskdefs.optional.net;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPSClient;

/**
* Basic FTPS client. Performs the following actions:
* <ul>
* <li><strong>send</strong> - send files to a remote server. This is the
* default action.</li>
* <li><strong>get</strong> - retrieve files from a remote server.</li>
* <li><strong>del</strong> - delete files from a remote server.</li>
* <li><strong>list</strong> - create a file listing.</li>
* <li><strong>chmod</strong> - change unix file permissions.</li>
* <li><strong>rmdir</strong> - remove directories, if empty, from a
* remote server.</li>
* </ul>
* This class is an extention of FTP class that supports FTPS Client for FTPS taskdef.
*
*/
public class FTPS extends FTP {
@Override
protected FTPClient getFTPClient(){
return new FTPSClient();
}
}

Loading…
Cancel
Save