summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSantosh R Dhariwal <sonydeswal@yahoo.com>2021-11-17 20:42:43 +0530
committerSantosh R Dhariwal <sonydeswal@yahoo.com>2021-11-17 20:42:43 +0530
commitea685c68d2552e58b9d79962d02000bae16b13ca (patch)
tree551655b228f59e60afb496fb7897868837161008 /src
parent9bef39da0f3df23ef36b0a21b026f6cba4398b53 (diff)
downloadant-ea685c68d2552e58b9d79962d02000bae16b13ca.tar.gz
Make Changes to Support FTPS AntTaskDef that extends FTP but uses FTPSClient.
Diffstat (limited to 'src')
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java30
-rw-r--r--src/main/org/apache/tools/ant/taskdefs/optional/net/FTPS.java43
2 files changed, 24 insertions, 49 deletions
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java b/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java
index a67fa6d40..3f45df7fd 100644
--- a/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java
+++ b/src/main/org/apache/tools/ant/taskdefs/optional/net/FTP.java
@@ -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);
}
diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/net/FTPS.java b/src/main/org/apache/tools/ant/taskdefs/optional/net/FTPS.java
deleted file mode 100644
index 5d1cea8a4..000000000
--- a/src/main/org/apache/tools/ant/taskdefs/optional/net/FTPS.java
+++ /dev/null
@@ -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();
- }
-}