You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2015/03/28 07:52:22 UTC

[3/3] camel git commit: CAMEL-8563: camel-ftp - Add support for account option for login

CAMEL-8563: camel-ftp - Add support for account option for login


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/4bc81b1f
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/4bc81b1f
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/4bc81b1f

Branch: refs/heads/camel-2.15.x
Commit: 4bc81b1f692561119b76d611a5538b000800daf9
Parents: 9e807e0
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Mar 28 07:40:48 2015 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Mar 28 07:54:29 2015 +0100

----------------------------------------------------------------------
 .../component/file/remote/FtpConfiguration.java | 14 ++++++++++
 .../component/file/remote/FtpOperations.java    | 20 +++++++++++---
 .../file/remote/FromFtpNoopAccountTest.java     | 29 ++++++++++++++++++++
 .../component/file/remote/FromFtpNoopTest.java  |  2 +-
 4 files changed, 60 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/4bc81b1f/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConfiguration.java b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConfiguration.java
index ec5ca4c..f2eb42e 100644
--- a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConfiguration.java
+++ b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpConfiguration.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.file.remote;
 
 import java.net.URI;
 
+import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 
 /**
@@ -28,6 +29,9 @@ public class FtpConfiguration extends RemoteFileConfiguration {
 
     public static final int DEFAULT_FTP_PORT = 21;
 
+    @UriParam
+    private String account;
+
     public FtpConfiguration() {
         setProtocol("ftp");
     }
@@ -41,4 +45,14 @@ public class FtpConfiguration extends RemoteFileConfiguration {
         setPort(DEFAULT_FTP_PORT);
     }
 
+    public String getAccount() {
+        return account;
+    }
+
+    /**
+     * Account to use for login
+     */
+    public void setAccount(String account) {
+        this.account = account;
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/4bc81b1f/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpOperations.java
----------------------------------------------------------------------
diff --git a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpOperations.java b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpOperations.java
index b5384ef..74dbf6f 100644
--- a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpOperations.java
+++ b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpOperations.java
@@ -73,6 +73,7 @@ public class FtpOperations implements RemoteFileOperations<FTPFile> {
         String host = configuration.getHost();
         int port = configuration.getPort();
         String username = configuration.getUsername();
+        String account = ((FtpConfiguration) configuration).getAccount();
 
         if (clientConfig != null) {
             log.trace("Configuring FTPClient with config: {}", clientConfig);
@@ -155,11 +156,22 @@ public class FtpOperations implements RemoteFileOperations<FTPFile> {
         try {
             boolean login;
             if (username != null) {
-                log.trace("Attempting to login user: {} using password: {}", username, configuration.getPassword());
-                login = client.login(username, configuration.getPassword());
+                if (account != null) {
+                    log.trace("Attempting to login user: {} using password: {} and account: {}", new Object[]{username, configuration.getPassword(), account});
+                    login = client.login(username, configuration.getPassword(), account);
+                } else {
+                    log.trace("Attempting to login user: {} using password: {}", username, configuration.getPassword());
+                    login = client.login(username, configuration.getPassword());
+                }
             } else {
-                log.trace("Attempting to login anonymous");
-                login = client.login("anonymous", "");
+                if (account != null) {
+                    // not sure if it makes sense to login anonymous with account?
+                    log.trace("Attempting to login anonymous using account: {}", account);
+                    login = client.login("anonymous", "", account);
+                } else {
+                    log.trace("Attempting to login anonymous");
+                    login = client.login("anonymous", "");
+                }
             }
             log.trace("User {} logged in: {}", username != null ? username : "anonymous", login);
             if (!login) {

http://git-wip-us.apache.org/repos/asf/camel/blob/4bc81b1f/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpNoopAccountTest.java
----------------------------------------------------------------------
diff --git a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpNoopAccountTest.java b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpNoopAccountTest.java
new file mode 100644
index 0000000..2601bc7
--- /dev/null
+++ b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpNoopAccountTest.java
@@ -0,0 +1,29 @@
+/**
+ * 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.camel.component.file.remote;
+
+/**
+ * Unit test to test account option.
+ */
+public class FromFtpNoopAccountTest extends FromFtpNoopTest {
+
+    @Override
+    protected String getFtpUrl() {
+        return "ftp://admin@localhost:" + getPort() + "/noop?password=admin&account=me&binary=false&noop=true";
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/4bc81b1f/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpNoopTest.java
----------------------------------------------------------------------
diff --git a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpNoopTest.java b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpNoopTest.java
index 1e3cca4..d102251 100644
--- a/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpNoopTest.java
+++ b/components/camel-ftp/src/test/java/org/apache/camel/component/file/remote/FromFtpNoopTest.java
@@ -31,7 +31,7 @@ import org.junit.Test;
  */
 public class FromFtpNoopTest extends FtpServerTestSupport {
 
-    private String getFtpUrl() {
+    protected String getFtpUrl() {
         return "ftp://admin@localhost:" + getPort() + "/noop?password=admin&binary=false&noop=true";
     }