diff options
author | Santosh R Dhariwal <sonydeswal@yahoo.com> | 2021-11-17 20:42:43 +0530 |
---|---|---|
committer | Santosh R Dhariwal <sonydeswal@yahoo.com> | 2021-11-17 20:42:43 +0530 |
commit | ea685c68d2552e58b9d79962d02000bae16b13ca (patch) | |
tree | 551655b228f59e60afb496fb7897868837161008 /src | |
parent | 9bef39da0f3df23ef36b0a21b026f6cba4398b53 (diff) | |
download | ant-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.java | 30 | ||||
-rw-r--r-- | src/main/org/apache/tools/ant/taskdefs/optional/net/FTPS.java | 43 |
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(); - } -} |