You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2022/06/05 07:21:30 UTC

[camel] branch main updated (3b33075f77b -> dcec655dcf3)

This is an automated email from the ASF dual-hosted git repository.

orpiske pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


    from 3b33075f77b CAMEL-18166: camel-main - Make RoutesCollector more flexible for other runtimes to do custom strategy.
     new 58f93dae691 CAMEL-17941 - Dropbox: long-lived access tokens are retired, must use refresh token
     new dcec655dcf3 CAMEL-17941 - Updating validator to use ObjectHelper

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../dropbox/DropboxEndpointConfigurer.java         | 24 +++++++
 .../dropbox/DropboxEndpointUriFactory.java         |  6 +-
 .../apache/camel/component/dropbox/dropbox.json    |  4 ++
 .../src/main/docs/dropbox-component.adoc           | 39 +++++++-----
 .../camel/component/dropbox/DropboxComponent.java  |  8 +++
 .../component/dropbox/DropboxConfiguration.java    | 73 ++++++++++++++++++++--
 .../validator/DropboxConfigurationValidator.java   | 16 ++++-
 .../src/main/resources/dropbox.properties          |  3 +
 .../DropboxComponentVerifierExtensionTest.java     |  8 +++
 .../component/dropbox/DropboxConsumerTest.java     | 24 +++++--
 .../dropbox/integration/DropboxTestSupport.java    | 13 +++-
 .../consumer/DropboxConsumerGetSingleIT.java       | 11 +++-
 .../consumer/DropboxConsumerSearchQueryIT.java     | 11 +++-
 .../integration/producer/DropboxProducerDelIT.java |  9 ++-
 .../producer/DropboxProducerGetFolderIT.java       | 17 ++++-
 .../producer/DropboxProducerGetSingleIT.java       | 11 +++-
 .../producer/DropboxProducerMoveIT.java            | 11 +++-
 .../producer/DropboxProducerPutSingleFileIT.java   |  6 +-
 .../producer/DropboxProducerSearchQueryIT.java     | 12 +++-
 .../src/test/resources/test-options.properties     |  6 +-
 20 files changed, 267 insertions(+), 45 deletions(-)


[camel] 02/02: CAMEL-17941 - Updating validator to use ObjectHelper

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit dcec655dcf38202947b79bc9e5ceb34784b910c1
Author: Rhuan Rocha <rh...@gmail.com>
AuthorDate: Sat Jun 4 20:52:07 2022 -0300

    CAMEL-17941 - Updating validator to use ObjectHelper
    
    Signed-off-by: Rhuan Rocha <rh...@gmail.com>
---
 .../dropbox/validator/DropboxConfigurationValidator.java       | 10 +++++-----
 .../dropbox/integration/producer/DropboxProducerMoveIT.java    |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/validator/DropboxConfigurationValidator.java b/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/validator/DropboxConfigurationValidator.java
index 0e0d6cc9450..a6c1233b11b 100644
--- a/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/validator/DropboxConfigurationValidator.java
+++ b/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/validator/DropboxConfigurationValidator.java
@@ -30,22 +30,22 @@ public final class DropboxConfigurationValidator {
     }
 
     public static void validateCommonProperties(DropboxConfiguration configuration) throws DropboxException {
-        if (configuration.getAccessToken() == null || configuration.getAccessToken().equals("")) {
+        if (ObjectHelper.isEmpty(configuration.getAccessToken())) {
             throw new DropboxException("option <accessToken> is not present or not valid!");
         }
         if (configuration.getExpireIn() == null || configuration.getExpireIn() <= 0) {
             throw new DropboxException("option <expireIn> is not present or not valid!");
         }
-        if (configuration.getRefreshToken() == null || configuration.getRefreshToken().equals("")) {
+        if (ObjectHelper.isEmpty(configuration.getRefreshToken())) {
             throw new DropboxException("option <refreshToken> is not present or not valid!");
         }
-        if (configuration.getApiKey() == null || configuration.getApiKey().equals("")) {
+        if (ObjectHelper.isEmpty(configuration.getApiKey())) {
             throw new DropboxException("option <apiKey> is not present or not valid!");
         }
-        if (configuration.getApiSecret() == null || configuration.getApiSecret().equals("")) {
+        if (ObjectHelper.isEmpty(configuration.getApiSecret())) {
             throw new DropboxException("option <apiSecret> is not present or not valid!");
         }
-        if (configuration.getClientIdentifier() == null || configuration.getClientIdentifier().equals("")) {
+        if (ObjectHelper.isEmpty(configuration.getClientIdentifier())) {
             throw new DropboxException("option <clientIdentifier> is not present or not valid!");
         }
     }
diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerMoveIT.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerMoveIT.java
index cd62f20d95a..9dac8c59de4 100644
--- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerMoveIT.java
+++ b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerMoveIT.java
@@ -67,7 +67,7 @@ public class DropboxProducerMoveIT extends DropboxTestSupport {
                         .to(String.format("dropbox://move?accessToken={{accessToken}}" +
                                           "&expireIn={{expireIn}}" +
                                           "&refreshToken={{refreshToken}}" +
-                                          "&apiKey={{apiKey}}&apiSecret={{apiSecret}}"+
+                                          "&apiKey={{apiKey}}&apiSecret={{apiSecret}}" +
                                           "&remotePath=%s&newRemotePath=%s",
                                 workdir + "/" + FILE, COPY_WORKDIR + "/" + FILE))
                         .to("mock:result");


[camel] 01/02: CAMEL-17941 - Dropbox: long-lived access tokens are retired, must use refresh token

Posted by or...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

orpiske pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 58f93dae69142999b965fbbd7d5945e3a4c5ea96
Author: Rhuan Rocha <rh...@gmail.com>
AuthorDate: Sat Jun 4 02:07:18 2022 -0300

    CAMEL-17941 - Dropbox: long-lived access tokens are retired, must use refresh token
    
    Signed-off-by: Rhuan Rocha <rh...@gmail.com>
---
 .../dropbox/DropboxEndpointConfigurer.java         | 24 +++++++
 .../dropbox/DropboxEndpointUriFactory.java         |  6 +-
 .../apache/camel/component/dropbox/dropbox.json    |  4 ++
 .../src/main/docs/dropbox-component.adoc           | 39 +++++++-----
 .../camel/component/dropbox/DropboxComponent.java  |  8 +++
 .../component/dropbox/DropboxConfiguration.java    | 73 ++++++++++++++++++++--
 .../validator/DropboxConfigurationValidator.java   | 12 ++++
 .../src/main/resources/dropbox.properties          |  3 +
 .../DropboxComponentVerifierExtensionTest.java     |  8 +++
 .../component/dropbox/DropboxConsumerTest.java     | 24 +++++--
 .../dropbox/integration/DropboxTestSupport.java    | 13 +++-
 .../consumer/DropboxConsumerGetSingleIT.java       | 11 +++-
 .../consumer/DropboxConsumerSearchQueryIT.java     | 11 +++-
 .../integration/producer/DropboxProducerDelIT.java |  9 ++-
 .../producer/DropboxProducerGetFolderIT.java       | 17 ++++-
 .../producer/DropboxProducerGetSingleIT.java       | 11 +++-
 .../producer/DropboxProducerMoveIT.java            | 11 +++-
 .../producer/DropboxProducerPutSingleFileIT.java   |  6 +-
 .../producer/DropboxProducerSearchQueryIT.java     | 12 +++-
 .../src/test/resources/test-options.properties     |  6 +-
 20 files changed, 265 insertions(+), 43 deletions(-)

diff --git a/components/camel-dropbox/src/generated/java/org/apache/camel/component/dropbox/DropboxEndpointConfigurer.java b/components/camel-dropbox/src/generated/java/org/apache/camel/component/dropbox/DropboxEndpointConfigurer.java
index 29dbed91982..1aee0f019e6 100644
--- a/components/camel-dropbox/src/generated/java/org/apache/camel/component/dropbox/DropboxEndpointConfigurer.java
+++ b/components/camel-dropbox/src/generated/java/org/apache/camel/component/dropbox/DropboxEndpointConfigurer.java
@@ -23,6 +23,10 @@ public class DropboxEndpointConfigurer extends PropertyConfigurerSupport impleme
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesstoken":
         case "accessToken": target.getConfiguration().setAccessToken(property(camelContext, java.lang.String.class, value)); return true;
+        case "apikey":
+        case "apiKey": target.getConfiguration().setApiKey(property(camelContext, java.lang.String.class, value)); return true;
+        case "apisecret":
+        case "apiSecret": target.getConfiguration().setApiSecret(property(camelContext, java.lang.String.class, value)); return true;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": target.setBridgeErrorHandler(property(camelContext, boolean.class, value)); return true;
         case "client": target.getConfiguration().setClient(property(camelContext, com.dropbox.core.v2.DbxClientV2.class, value)); return true;
@@ -32,6 +36,8 @@ public class DropboxEndpointConfigurer extends PropertyConfigurerSupport impleme
         case "exceptionHandler": target.setExceptionHandler(property(camelContext, org.apache.camel.spi.ExceptionHandler.class, value)); return true;
         case "exchangepattern":
         case "exchangePattern": target.setExchangePattern(property(camelContext, org.apache.camel.ExchangePattern.class, value)); return true;
+        case "expirein":
+        case "expireIn": target.getConfiguration().setExpireIn(property(camelContext, java.lang.Long.class, value)); return true;
         case "lazystartproducer":
         case "lazyStartProducer": target.setLazyStartProducer(property(camelContext, boolean.class, value)); return true;
         case "localpath":
@@ -39,6 +45,8 @@ public class DropboxEndpointConfigurer extends PropertyConfigurerSupport impleme
         case "newremotepath":
         case "newRemotePath": target.getConfiguration().setNewRemotePath(property(camelContext, java.lang.String.class, value)); return true;
         case "query": target.getConfiguration().setQuery(property(camelContext, java.lang.String.class, value)); return true;
+        case "refreshtoken":
+        case "refreshToken": target.getConfiguration().setRefreshToken(property(camelContext, java.lang.String.class, value)); return true;
         case "remotepath":
         case "remotePath": target.getConfiguration().setRemotePath(property(camelContext, java.lang.String.class, value)); return true;
         case "uploadmode":
@@ -52,6 +60,10 @@ public class DropboxEndpointConfigurer extends PropertyConfigurerSupport impleme
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesstoken":
         case "accessToken": return java.lang.String.class;
+        case "apikey":
+        case "apiKey": return java.lang.String.class;
+        case "apisecret":
+        case "apiSecret": return java.lang.String.class;
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": return boolean.class;
         case "client": return com.dropbox.core.v2.DbxClientV2.class;
@@ -61,6 +73,8 @@ public class DropboxEndpointConfigurer extends PropertyConfigurerSupport impleme
         case "exceptionHandler": return org.apache.camel.spi.ExceptionHandler.class;
         case "exchangepattern":
         case "exchangePattern": return org.apache.camel.ExchangePattern.class;
+        case "expirein":
+        case "expireIn": return java.lang.Long.class;
         case "lazystartproducer":
         case "lazyStartProducer": return boolean.class;
         case "localpath":
@@ -68,6 +82,8 @@ public class DropboxEndpointConfigurer extends PropertyConfigurerSupport impleme
         case "newremotepath":
         case "newRemotePath": return java.lang.String.class;
         case "query": return java.lang.String.class;
+        case "refreshtoken":
+        case "refreshToken": return java.lang.String.class;
         case "remotepath":
         case "remotePath": return java.lang.String.class;
         case "uploadmode":
@@ -82,6 +98,10 @@ public class DropboxEndpointConfigurer extends PropertyConfigurerSupport impleme
         switch (ignoreCase ? name.toLowerCase() : name) {
         case "accesstoken":
         case "accessToken": return target.getConfiguration().getAccessToken();
+        case "apikey":
+        case "apiKey": return target.getConfiguration().getApiKey();
+        case "apisecret":
+        case "apiSecret": return target.getConfiguration().getApiSecret();
         case "bridgeerrorhandler":
         case "bridgeErrorHandler": return target.isBridgeErrorHandler();
         case "client": return target.getConfiguration().getClient();
@@ -91,6 +111,8 @@ public class DropboxEndpointConfigurer extends PropertyConfigurerSupport impleme
         case "exceptionHandler": return target.getExceptionHandler();
         case "exchangepattern":
         case "exchangePattern": return target.getExchangePattern();
+        case "expirein":
+        case "expireIn": return target.getConfiguration().getExpireIn();
         case "lazystartproducer":
         case "lazyStartProducer": return target.isLazyStartProducer();
         case "localpath":
@@ -98,6 +120,8 @@ public class DropboxEndpointConfigurer extends PropertyConfigurerSupport impleme
         case "newremotepath":
         case "newRemotePath": return target.getConfiguration().getNewRemotePath();
         case "query": return target.getConfiguration().getQuery();
+        case "refreshtoken":
+        case "refreshToken": return target.getConfiguration().getRefreshToken();
         case "remotepath":
         case "remotePath": return target.getConfiguration().getRemotePath();
         case "uploadmode":
diff --git a/components/camel-dropbox/src/generated/java/org/apache/camel/component/dropbox/DropboxEndpointUriFactory.java b/components/camel-dropbox/src/generated/java/org/apache/camel/component/dropbox/DropboxEndpointUriFactory.java
index 8092d50edda..8fb2f88a458 100644
--- a/components/camel-dropbox/src/generated/java/org/apache/camel/component/dropbox/DropboxEndpointUriFactory.java
+++ b/components/camel-dropbox/src/generated/java/org/apache/camel/component/dropbox/DropboxEndpointUriFactory.java
@@ -21,18 +21,22 @@ public class DropboxEndpointUriFactory extends org.apache.camel.support.componen
     private static final Set<String> SECRET_PROPERTY_NAMES;
     private static final Set<String> MULTI_VALUE_PREFIXES;
     static {
-        Set<String> props = new HashSet<>(13);
+        Set<String> props = new HashSet<>(17);
         props.add("accessToken");
+        props.add("apiKey");
+        props.add("apiSecret");
         props.add("bridgeErrorHandler");
         props.add("client");
         props.add("clientIdentifier");
         props.add("exceptionHandler");
         props.add("exchangePattern");
+        props.add("expireIn");
         props.add("lazyStartProducer");
         props.add("localPath");
         props.add("newRemotePath");
         props.add("operation");
         props.add("query");
+        props.add("refreshToken");
         props.add("remotePath");
         props.add("uploadMode");
         PROPERTY_NAMES = Collections.unmodifiableSet(props);
diff --git a/components/camel-dropbox/src/generated/resources/org/apache/camel/component/dropbox/dropbox.json b/components/camel-dropbox/src/generated/resources/org/apache/camel/component/dropbox/dropbox.json
index 530e218c2a3..b5a8dc6c470 100644
--- a/components/camel-dropbox/src/generated/resources/org/apache/camel/component/dropbox/dropbox.json
+++ b/components/camel-dropbox/src/generated/resources/org/apache/camel/component/dropbox/dropbox.json
@@ -44,11 +44,15 @@
   "properties": {
     "operation": { "kind": "path", "displayName": "Operation", "group": "common", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.dropbox.util.DropboxOperation", "enum": [ "put", "del", "search", "get", "move" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dropbox.DropboxConfiguration", "configurationField": "configuration", "description": "The specific action ( [...]
     "accessToken": { "kind": "parameter", "displayName": "Access Token", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dropbox.DropboxConfiguration", "configurationField": "configuration", "description": "The access token to make API requests for a specific Dropbox user" },
+    "apiKey": { "kind": "parameter", "displayName": "Api Key", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dropbox.DropboxConfiguration", "configurationField": "configuration", "description": "The apiKey to make API requests for a specific Dropbox user" },
+    "apiSecret": { "kind": "parameter", "displayName": "Api Secret", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dropbox.DropboxConfiguration", "configurationField": "configuration", "description": "The apiSecret to make API requests for a specific Dropbox user" },
     "client": { "kind": "parameter", "displayName": "Client", "group": "common", "label": "", "required": false, "type": "object", "javaType": "com.dropbox.core.v2.DbxClientV2", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dropbox.DropboxConfiguration", "configurationField": "configuration", "description": "To use an existing DbxClient instance as DropBox client." },
     "clientIdentifier": { "kind": "parameter", "displayName": "Client Identifier", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dropbox.DropboxConfiguration", "configurationField": "configuration", "description": "Name of the app registered to make API requests" },
+    "expireIn": { "kind": "parameter", "displayName": "Expire In", "group": "common", "label": "", "required": true, "type": "integer", "javaType": "java.lang.Long", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dropbox.DropboxConfiguration", "configurationField": "configuration", "description": "The expire time to access token for a specific Dropbox user" },
     "localPath": { "kind": "parameter", "displayName": "Local Path", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dropbox.DropboxConfiguration", "configurationField": "configuration", "description": "Optional folder or file to upload on Dropbox from the local filesystem. If this option has not been configured then the message  [...]
     "newRemotePath": { "kind": "parameter", "displayName": "New Remote Path", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dropbox.DropboxConfiguration", "configurationField": "configuration", "description": "Destination file or folder" },
     "query": { "kind": "parameter", "displayName": "Query", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dropbox.DropboxConfiguration", "configurationField": "configuration", "description": "A space-separated list of sub-strings to search for. A file matches only if it contains all the sub-strings. If this option is not set, a [...]
+    "refreshToken": { "kind": "parameter", "displayName": "Refresh Token", "group": "common", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dropbox.DropboxConfiguration", "configurationField": "configuration", "description": "The refresh token to refresh the access token for a specific Dropbox user" },
     "remotePath": { "kind": "parameter", "displayName": "Remote Path", "group": "common", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dropbox.DropboxConfiguration", "configurationField": "configuration", "description": "Original file or folder to move" },
     "uploadMode": { "kind": "parameter", "displayName": "Upload Mode", "group": "common", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.dropbox.util.DropboxUploadMode", "enum": [ "add", "force" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.dropbox.DropboxConfiguration", "configurationField": "configuration", "description": "Which mode to upload. in case of add the new file will be [...]
     "bridgeErrorHandler": { "kind": "parameter", "displayName": "Bridge Error Handler", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a m [...]
diff --git a/components/camel-dropbox/src/main/docs/dropbox-component.adoc b/components/camel-dropbox/src/main/docs/dropbox-component.adoc
index e4c9ab74f72..eb5d89c370d 100644
--- a/components/camel-dropbox/src/main/docs/dropbox-component.adoc
+++ b/components/camel-dropbox/src/main/docs/dropbox-component.adoc
@@ -24,10 +24,10 @@ component has the following features:
 * As a producer, download files, move files between remote directories,
 delete files/dir, upload files and search files by queries
 
-In order to work with Dropbox API you need to obtain an *accessToken*
-and a *clientIdentifier.* +
+In order to work with Dropbox API you need to obtain an *accessToken*,
+ *expireIn*, *refreshToken*, *apiKey*, *apiSecret* and a *clientIdentifier.* +
 You can refer to the
-https://www.dropbox.com/developers/core/start/java[Dropbox
+https://dropbox.tech/developers/migrating-app-permissions-and-access-tokens[Dropbox
 documentation] that explains how to get them.
 
 Maven users will need to add the following dependency to their `pom.xml`
@@ -110,11 +110,13 @@ Below are listed the options for this operation:
 [source,java]
 ----
 from("direct:start")
-  .to("dropbox://del?accessToken=XXX&clientIdentifier=XXX&remotePath=/root/folder1")
+  .to("dropbox://del?accessToken=XXX&clientIdentifier=XXX&expireIn=1000&refreshToken=XXXX"
+      +"&apiKey=XXXXX&apiSecret=XXXXXX&remotePath=/root/folder1")
   .to("mock:result");
 
 from("direct:start")
-  .to("dropbox://del?accessToken=XXX&clientIdentifier=XXX&remotePath=/root/folder1/file1.tar.gz")
+  .to("dropbox://del?accessToken=XXX&clientIdentifier=XXX&expireIn=1000&refreshToken=XXXX"
+      +"&apiKey=XXXXX&apiSecret=XXXXXX&remotePath=/root/folder1/file1.tar.gz")
   .to("mock:result");
 ----
 
@@ -149,14 +151,17 @@ Below are listed the options for this operation:
 [source,java]
 ----
 from("direct:start")
-  .to("dropbox://get?accessToken=XXX&clientIdentifier=XXX&remotePath=/root/folder1/file1.tar.gz")
+  .to("dropbox://get?accessToken=XXX&clientIdentifier=XXX&expireIn=1000&refreshToken=XXXX"
+      +"&apiKey=XXXXX&apiSecret=XXXXXX&remotePath=/root/folder1/file1.tar.gz")
   .to("file:///home/kermit/?fileName=file1.tar.gz");
 
 from("direct:start")
-  .to("dropbox://get?accessToken=XXX&clientIdentifier=XXX&remotePath=/root/folder1")
+  .to("dropbox://get?accessToken=XXX&clientIdentifier=XXX&expireIn=1000&refreshToken=XXXX"
+      +"&apiKey=XXXXX&apiSecret=XXXXXX&remotePath=/root/folder1")
   .to("mock:result");
 
-from("dropbox://get?accessToken=XXX&clientIdentifier=XXX&remotePath=/root/folder1")
+from("dropbox://get?accessToken=XXX&clientIdentifier=XXX&expireIn=1000&refreshToken=XXXX"
+      +"&apiKey=XXXXX&apiSecret=XXXXXX&remotePath=/root/folder1")
   .to("file:///home/kermit/");
 ----
 
@@ -197,7 +202,8 @@ Below are listed the options for this operation:
 [source,java]
 ----
 from("direct:start")
-  .to("dropbox://move?accessToken=XXX&clientIdentifier=XXX&remotePath=/root/folder1&newRemotePath=/root/folder2")
+  .to("dropbox://move?accessToken=XXX&clientIdentifier=XXX&expireIn=1000&refreshToken=XXXX"
+      +"&apiKey=XXXXX&apiSecret=XXXXXX&remotePath=/root/folder1&newRemotePath=/root/folder2")
   .to("mock:result");
 ----
 
@@ -247,10 +253,12 @@ Caused by: java.lang.IllegalArgumentException: 'path': bad path: must start with
 
 [source,java]
 ----
-from("direct:start").to("dropbox://put?accessToken=XXX&clientIdentifier=XXX&uploadMode=add&localPath=/root/folder1")
+from("direct:start").to("dropbox://put?accessToken=XXX&clientIdentifier=XXX&expireIn=1000&refreshToken=XXXX"
+      +"&apiKey=XXXXX&apiSecret=XXXXXX&uploadMode=add&localPath=/root/folder1")
   .to("mock:result");
 
-from("direct:start").to("dropbox://put?accessToken=XXX&clientIdentifier=XXX&uploadMode=add&localPath=/root/folder1&remotePath=/root/folder2")
+from("direct:start").to("dropbox://put?accessToken=XXX&clientIdentifier=XXX&expireIn=1000&refreshToken=XXXX"
+      +"&apiKey=XXXXX&apiSecret=XXXXXX&uploadMode=add&localPath=/root/folder1&remotePath=/root/folder2")
   .to("mock:result");
 ----
 
@@ -260,7 +268,8 @@ And to upload a single file with content from the message body
 ----
 from("direct:start")
    .setHeader(DropboxConstants.HEADER_PUT_FILE_NAME, constant("myfile.txt"))
-   .to("dropbox://put?accessToken=XXX&clientIdentifier=XXX&uploadMode=add&remotePath=/root/folder2")
+   .to("dropbox://put?accessToken=XXX&clientIdentifier=XXX&expireIn=1000&refreshToken=XXXX"
+      +"&apiKey=XXXXX&apiSecret=XXXXXX&uploadMode=add&remotePath=/root/folder2")
    .to("mock:result");
 ----
 
@@ -307,12 +316,14 @@ or as a header `CamelDropboxQuery` on the Camel message.
 
 [source,java]
 ----
-from("dropbox://search?accessToken=XXX&clientIdentifier=XXX&remotePath=/XXX&query=XXX")
+from("dropbox://search?accessToken=XXX&clientIdentifier=XXX&expireIn=1000&refreshToken=XXXX"
+      +"&apiKey=XXXXX&apiSecret=XXXXXX&remotePath=/XXX&query=XXX")
   .to("mock:result");
 
 from("direct:start")
   .setHeader("CamelDropboxQuery", constant("XXX"))
-  .to("dropbox://search?accessToken=XXX&clientIdentifier=XXX&remotePath=/XXX")
+  .to("dropbox://search?accessToken=XXX&clientIdentifier=XXX&expireIn=1000&refreshToken=XXXX"
+      +"&apiKey=XXXXX&apiSecret=XXXXXX&remotePath=/XXX")
   .to("mock:result");
 ----
 
diff --git a/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/DropboxComponent.java b/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/DropboxComponent.java
index 2153cf83c69..0bce1733012 100644
--- a/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/DropboxComponent.java
+++ b/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/DropboxComponent.java
@@ -57,7 +57,15 @@ public class DropboxComponent extends DefaultComponent {
         DropboxConfiguration configuration = new DropboxConfiguration();
 
         // set options from component
+        //set auth parameters
         configuration.setAccessToken((String) parameters.get("accessToken"));
+        if (parameters.get("expireIn") != null) {
+            configuration.setExpireIn(Long.valueOf((String) parameters.get("expireIn")));
+        }
+        configuration.setRefreshToken((String) parameters.get("refreshToken"));
+        configuration.setApiKey((String) parameters.get("apiKey"));
+        configuration.setApiSecret((String) parameters.get("apiSecret"));
+
         configuration.setLocalPath((String) parameters.get("localPath"));
         configuration.setRemotePath(
                 parameters.get("remotePath") != null
diff --git a/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/DropboxConfiguration.java b/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/DropboxConfiguration.java
index 21c08680b99..48414fe6998 100644
--- a/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/DropboxConfiguration.java
+++ b/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/DropboxConfiguration.java
@@ -16,9 +16,8 @@
  */
 package org.apache.camel.component.dropbox;
 
-import java.util.Locale;
-
 import com.dropbox.core.DbxRequestConfig;
+import com.dropbox.core.oauth.DbxCredential;
 import com.dropbox.core.v2.DbxClientV2;
 import org.apache.camel.component.dropbox.util.DropboxOperation;
 import org.apache.camel.component.dropbox.util.DropboxUploadMode;
@@ -38,6 +37,27 @@ public class DropboxConfiguration {
     @UriParam
     @Metadata(required = true)
     private String accessToken;
+
+    //dropbox auth options
+    @UriParam
+    @Metadata(required = true)
+    private Long expireIn;
+
+    //dropbox auth options
+    @UriParam
+    @Metadata(required = true)
+    private String refreshToken;
+
+    //dropbox auth options
+    @UriParam
+    @Metadata(required = true)
+    private String apiKey;
+
+    //dropbox auth options
+    @UriParam
+    @Metadata(required = true)
+    private String apiSecret;
+
     //local path to put files
     @UriParam
     private String localPath;
@@ -75,8 +95,9 @@ public class DropboxConfiguration {
      * Obtain a new instance of DbxClient and store it in configuration.
      */
     public void createClient() {
-        DbxRequestConfig config = new DbxRequestConfig(clientIdentifier, Locale.getDefault().toString());
-        this.client = new DbxClientV2(config, accessToken);
+        DbxRequestConfig config = DbxRequestConfig.newBuilder(clientIdentifier).build();
+        DbxCredential credential = new DbxCredential(accessToken, expireIn, refreshToken, apiKey, apiSecret);
+        this.client = new DbxClientV2(config, credential);
     }
 
     public String getAccessToken() {
@@ -94,6 +115,50 @@ public class DropboxConfiguration {
         return localPath;
     }
 
+    public String getRefreshToken() {
+        return refreshToken;
+    }
+
+    /**
+     * The refresh token to refresh the access token for a specific Dropbox user
+     */
+    public void setRefreshToken(String refreshToken) {
+        this.refreshToken = refreshToken;
+    }
+
+    public String getApiKey() {
+        return apiKey;
+    }
+
+    /**
+     * The apiKey to make API requests for a specific Dropbox user
+     */
+    public void setApiKey(String apiKey) {
+        this.apiKey = apiKey;
+    }
+
+    /**
+     * The apiSecret to make API requests for a specific Dropbox user
+     */
+    public String getApiSecret() {
+        return apiSecret;
+    }
+
+    public void setApiSecret(String apiSecret) {
+        this.apiSecret = apiSecret;
+    }
+
+    /**
+     * The expire time to access token for a specific Dropbox user
+     */
+    public Long getExpireIn() {
+        return expireIn;
+    }
+
+    public void setExpireIn(Long expireIn) {
+        this.expireIn = expireIn;
+    }
+
     /**
      * Optional folder or file to upload on Dropbox from the local filesystem. If this option has not been configured
      * then the message body is used as the content to upload.
diff --git a/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/validator/DropboxConfigurationValidator.java b/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/validator/DropboxConfigurationValidator.java
index 2fba22ed441..0e0d6cc9450 100644
--- a/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/validator/DropboxConfigurationValidator.java
+++ b/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/validator/DropboxConfigurationValidator.java
@@ -33,6 +33,18 @@ public final class DropboxConfigurationValidator {
         if (configuration.getAccessToken() == null || configuration.getAccessToken().equals("")) {
             throw new DropboxException("option <accessToken> is not present or not valid!");
         }
+        if (configuration.getExpireIn() == null || configuration.getExpireIn() <= 0) {
+            throw new DropboxException("option <expireIn> is not present or not valid!");
+        }
+        if (configuration.getRefreshToken() == null || configuration.getRefreshToken().equals("")) {
+            throw new DropboxException("option <refreshToken> is not present or not valid!");
+        }
+        if (configuration.getApiKey() == null || configuration.getApiKey().equals("")) {
+            throw new DropboxException("option <apiKey> is not present or not valid!");
+        }
+        if (configuration.getApiSecret() == null || configuration.getApiSecret().equals("")) {
+            throw new DropboxException("option <apiSecret> is not present or not valid!");
+        }
         if (configuration.getClientIdentifier() == null || configuration.getClientIdentifier().equals("")) {
             throw new DropboxException("option <clientIdentifier> is not present or not valid!");
         }
diff --git a/components/camel-dropbox/src/main/resources/dropbox.properties b/components/camel-dropbox/src/main/resources/dropbox.properties
index 8a22061c046..b43e45db1d2 100644
--- a/components/camel-dropbox/src/main/resources/dropbox.properties
+++ b/components/camel-dropbox/src/main/resources/dropbox.properties
@@ -16,4 +16,7 @@
 ## ---------------------------------------------------------------------------
 
 accessToken=<access-token>
+refreshToken=<refresh-token>
+apiKey=<api-key>
+expireIn=<api-secret>
 clientIdentifier=<clientIdentifier>
diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/DropboxComponentVerifierExtensionTest.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/DropboxComponentVerifierExtensionTest.java
index 9bd5d212de9..e0c3b345563 100644
--- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/DropboxComponentVerifierExtensionTest.java
+++ b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/DropboxComponentVerifierExtensionTest.java
@@ -45,6 +45,10 @@ public class DropboxComponentVerifierExtensionTest extends CamelTestSupport {
 
         Map<String, Object> parameters = new HashMap<>();
         parameters.put("accessToken", "l");
+        parameters.put("expireIn", "1000");
+        parameters.put("refreshToken", "l");
+        parameters.put("apiKey", "a");
+        parameters.put("apiSecret", "s");
         parameters.put("clientIdentifier", "k");
 
         ComponentVerifierExtension.Result result = verifier.verify(ComponentVerifierExtension.Scope.PARAMETERS, parameters);
@@ -60,6 +64,10 @@ public class DropboxComponentVerifierExtensionTest extends CamelTestSupport {
 
         Map<String, Object> parameters = new HashMap<>();
         parameters.put("accessToken", "l");
+        parameters.put("expireIn", "1000");
+        parameters.put("refreshToken", "l");
+        parameters.put("apiKey", "a");
+        parameters.put("apiSecret", "s");
         parameters.put("clientIdentifier", "k");
 
         ComponentVerifierExtension.Result result = verifier.verify(ComponentVerifierExtension.Scope.CONNECTIVITY, parameters);
diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/DropboxConsumerTest.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/DropboxConsumerTest.java
index e1e31317332..33bb0b5acd2 100644
--- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/DropboxConsumerTest.java
+++ b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/DropboxConsumerTest.java
@@ -32,9 +32,17 @@ public class DropboxConsumerTest extends CamelTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() {
-                from("dropbox://get?accessToken=accessToken&remotePath=/path").to("mock:test1");
+                from("dropbox://get?accessToken=accessToken" +
+                     "&expireIn=1000" +
+                     "&refreshToken=refreshToken" +
+                     "&apiKey=apiKey&apiSecret=apiSecret" +
+                     "&remotePath=/path").to("mock:test1");
 
-                from("dropbox://get?accessToken=accessToken&remotePath=/path with spaces/file").to("mock:test2");
+                from("dropbox://get?accessToken=accessToken" +
+                     "&expireIn=1000" +
+                     "&refreshToken=refreshToken" +
+                     "&apiKey=apiKey&apiSecret=apiSecret" +
+                     "&remotePath=/path with spaces/file").to("mock:test2");
             }
         };
     }
@@ -42,7 +50,11 @@ public class DropboxConsumerTest extends CamelTestSupport {
     @Test
     public void shouldCreateGetConsumer() throws Exception {
         // Given
-        Endpoint dropboxEndpoint1 = context.getEndpoint("dropbox://get?accessToken=accessToken&remotePath=/path");
+        Endpoint dropboxEndpoint1 = context.getEndpoint("dropbox://get?accessToken=accessToken" +
+                                                        "&expireIn=1000" +
+                                                        "&refreshToken=refreshToken" +
+                                                        "&apiKey=apiKey&apiSecret=apiSecret" +
+                                                        "&remotePath=/path");
 
         // When
         Consumer consumer1 = dropboxEndpoint1.createConsumer(null);
@@ -52,7 +64,11 @@ public class DropboxConsumerTest extends CamelTestSupport {
 
         // Given
         Endpoint dropboxEndpoint2
-                = context.getEndpoint("dropbox://get?accessToken=accessToken&remotePath=/path with spaces/file");
+                = context.getEndpoint("dropbox://get?accessToken=accessToken" +
+                                      "&expireIn=1000" +
+                                      "&refreshToken=refreshToken" +
+                                      "&apiKey=apiKey&apiSecret=apiSecret" +
+                                      "&remotePath=/path with spaces/file");
 
         // When
         Consumer consumer2 = dropboxEndpoint2.createConsumer(null);
diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/DropboxTestSupport.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/DropboxTestSupport.java
index 4548370fe3d..4664a6b684b 100644
--- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/DropboxTestSupport.java
+++ b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/DropboxTestSupport.java
@@ -25,6 +25,7 @@ import java.util.Properties;
 import com.dropbox.core.DbxDownloader;
 import com.dropbox.core.DbxException;
 import com.dropbox.core.DbxRequestConfig;
+import com.dropbox.core.oauth.DbxCredential;
 import com.dropbox.core.v2.DbxClientV2;
 import com.dropbox.core.v2.files.FileMetadata;
 import org.apache.camel.test.junit5.CamelTestSupport;
@@ -39,6 +40,11 @@ public class DropboxTestSupport extends CamelTestSupport {
     protected final Properties properties;
     protected String workdir;
     protected String token;
+    protected String apiKey;
+    protected String apiSecret;
+    protected String refreshToken;
+    protected Long expireIn;
+
     private DbxClientV2 client;
 
     protected DropboxTestSupport() {
@@ -46,9 +52,14 @@ public class DropboxTestSupport extends CamelTestSupport {
 
         workdir = properties.getProperty("workDir");
         token = properties.getProperty("accessToken");
+        refreshToken = properties.getProperty("refreshToken");
+        apiKey = properties.getProperty("apiKey");
+        apiSecret = properties.getProperty("apiSecret");
+        expireIn = Long.valueOf(properties.getProperty("expireIn"));
 
         DbxRequestConfig config = DbxRequestConfig.newBuilder(properties.getProperty("clientIdentifier")).build();
-        client = new DbxClientV2(config, token);
+        DbxCredential credential = new DbxCredential(token, expireIn, refreshToken, apiKey, apiSecret);
+        client = new DbxClientV2(config, credential);
 
     }
 
diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/consumer/DropboxConsumerGetSingleIT.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/consumer/DropboxConsumerGetSingleIT.java
index f8d44aec222..dad8edc993a 100644
--- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/consumer/DropboxConsumerGetSingleIT.java
+++ b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/consumer/DropboxConsumerGetSingleIT.java
@@ -46,9 +46,14 @@ public class DropboxConsumerGetSingleIT extends DropboxTestSupport {
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
-                from(String.format("dropbox://get?accessToken={{accessToken}}&remotePath=%s/%s", workdir, FILE_NAME))
-                        .autoStartup(false).id("consumer")
-                        .to("mock:result");
+                from(String.format("dropbox://get?accessToken={{accessToken}}" +
+                                   "&expireIn={{expireIn}}" +
+                                   "&refreshToken={{refreshToken}}" +
+                                   "&apiKey={{apiKey}}&apiSecret={{apiSecret}}" +
+                                   "&remotePath=%s/%s",
+                        workdir, FILE_NAME))
+                                .autoStartup(false).id("consumer")
+                                .to("mock:result");
             }
         };
     }
diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/consumer/DropboxConsumerSearchQueryIT.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/consumer/DropboxConsumerSearchQueryIT.java
index aaeade04c4a..bc6b83c29f4 100644
--- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/consumer/DropboxConsumerSearchQueryIT.java
+++ b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/consumer/DropboxConsumerSearchQueryIT.java
@@ -45,9 +45,14 @@ public class DropboxConsumerSearchQueryIT extends DropboxTestSupport {
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
-                from(String.format("dropbox://search?accessToken={{accessToken}}&remotePath=%s&query=%s", workdir, FILE_NAME))
-                        .id("consumer").autoStartup(false)
-                        .to("mock:result");
+                from(String.format("dropbox://search?accessToken={{accessToken}}" +
+                                   "&expireIn={{expireIn}}" +
+                                   "&refreshToken={{refreshToken}}" +
+                                   "&apiKey={{apiKey}}&apiSecret={{apiSecret}}" +
+                                   "&remotePath=%s&query=%s",
+                        workdir, FILE_NAME))
+                                .id("consumer").autoStartup(false)
+                                .to("mock:result");
             }
         };
     }
diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerDelIT.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerDelIT.java
index 2d8ca03f09a..0678c5f814e 100644
--- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerDelIT.java
+++ b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerDelIT.java
@@ -60,12 +60,17 @@ public class DropboxProducerDelIT extends DropboxTestSupport {
         return new RouteBuilder() {
             public void configure() {
                 from("direct:start")
-                        .to("dropbox://del?accessToken={{accessToken}}&remotePath=" + workdir + "/" + FILE_NAME)
+                        .to("dropbox://del?accessToken={{accessToken}}&expireIn={{expireIn}}" +
+                            "&refreshToken={{refreshToken}}" +
+                            "&apiKey={{apiKey}}&apiSecret={{apiSecret}}" +
+                            "&remotePath=" + workdir + "/" + FILE_NAME)
                         .to("mock:result");
 
                 from("direct:start2")
                         .setHeader(DropboxConstants.HEADER_REMOTE_PATH, constant(workdir + "/" + FILE_NAME))
-                        .to("dropbox://del?accessToken={{accessToken}}")
+                        .to("dropbox://del?accessToken={{accessToken}}&expireIn={{expireIn}}" +
+                            "&refreshToken={{refreshToken}}" +
+                            "&apiKey={{apiKey}}&apiSecret={{apiSecret}}")
                         .to("mock:result");
             }
         };
diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerGetFolderIT.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerGetFolderIT.java
index c4e4f88f5fa..efbca85bea8 100644
--- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerGetFolderIT.java
+++ b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerGetFolderIT.java
@@ -79,17 +79,28 @@ public class DropboxProducerGetFolderIT extends DropboxTestSupport {
         return new RouteBuilder() {
             public void configure() {
                 from("direct:start")
-                        .to("dropbox://get?accessToken={{accessToken}}&remotePath=" + workdir)
+                        .to("dropbox://get?accessToken={{accessToken}}" +
+                            "&expireIn={{expireIn}}" +
+                            "&refreshToken={{refreshToken}}" +
+                            "&apiKey={{apiKey}}&apiSecret={{apiSecret}}" +
+                            "&remotePath=" + workdir)
                         .to("mock:result");
 
                 from("direct:start2")
                         .setHeader(DropboxConstants.HEADER_REMOTE_PATH, constant(workdir))
-                        .to("dropbox://get?accessToken={{accessToken}}")
+                        .to("dropbox://get?accessToken={{accessToken}}" +
+                            "&expireIn={{expireIn}}" +
+                            "&refreshToken={{refreshToken}}" +
+                            "&apiKey={{apiKey}}&apiSecret={{apiSecret}}")
                         .to("mock:result");
 
                 from("direct:start3")
                         .setHeader(DropboxConstants.HEADER_REMOTE_PATH, constant(workdir))
-                        .to("dropbox://get?accessToken={{accessToken}}&remotePath=/aWrongPath")
+                        .to("dropbox://get?accessToken={{accessToken}}" +
+                            "&expireIn={{expireIn}}" +
+                            "&refreshToken={{refreshToken}}" +
+                            "&apiKey={{apiKey}}&apiSecret={{apiSecret}}" +
+                            "&remotePath=/aWrongPath")
                         .to("mock:result");
 
             }
diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerGetSingleIT.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerGetSingleIT.java
index 979093b2032..70ece595776 100644
--- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerGetSingleIT.java
+++ b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerGetSingleIT.java
@@ -62,12 +62,19 @@ public class DropboxProducerGetSingleIT extends DropboxTestSupport {
         return new RouteBuilder() {
             public void configure() {
                 from("direct:start")
-                        .to("dropbox://get?accessToken={{accessToken}}&remotePath=" + workdir + "/" + FILE_NAME)
+                        .to("dropbox://get?accessToken={{accessToken}}" +
+                            "&expireIn={{expireIn}}" +
+                            "&refreshToken={{refreshToken}}" +
+                            "&apiKey={{apiKey}}&apiSecret={{apiSecret}}" +
+                            "&remotePath=" + workdir + "/" + FILE_NAME)
                         .to("mock:result");
 
                 from("direct:start2")
                         .setHeader(DropboxConstants.HEADER_REMOTE_PATH, constant(workdir + "/" + FILE_NAME))
-                        .to("dropbox://get?accessToken={{accessToken}}")
+                        .to("dropbox://get?accessToken={{accessToken}}" +
+                            "&expireIn={{expireIn}}" +
+                            "&refreshToken={{refreshToken}}" +
+                            "&apiKey={{apiKey}}&apiSecret={{apiSecret}}")
                         .to("mock:result");
             }
         };
diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerMoveIT.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerMoveIT.java
index 472f1272e8e..cd62f20d95a 100644
--- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerMoveIT.java
+++ b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerMoveIT.java
@@ -64,14 +64,21 @@ public class DropboxProducerMoveIT extends DropboxTestSupport {
         return new RouteBuilder() {
             public void configure() {
                 from("direct:start")
-                        .to(String.format("dropbox://move?accessToken={{accessToken}}&remotePath=%s&newRemotePath=%s",
+                        .to(String.format("dropbox://move?accessToken={{accessToken}}" +
+                                          "&expireIn={{expireIn}}" +
+                                          "&refreshToken={{refreshToken}}" +
+                                          "&apiKey={{apiKey}}&apiSecret={{apiSecret}}"+
+                                          "&remotePath=%s&newRemotePath=%s",
                                 workdir + "/" + FILE, COPY_WORKDIR + "/" + FILE))
                         .to("mock:result");
 
                 from("direct:start2")
                         .setHeader(DropboxConstants.HEADER_REMOTE_PATH, constant(workdir + "/" + FILE))
                         .setHeader(DropboxConstants.HEADER_NEW_REMOTE_PATH, constant(COPY_WORKDIR + "/" + FILE))
-                        .to("dropbox://move?accessToken={{accessToken}}")
+                        .to("dropbox://move?accessToken={{accessToken}}" +
+                            "&expireIn={{expireIn}}" +
+                            "&refreshToken={{refreshToken}}" +
+                            "&apiKey={{apiKey}}&apiSecret={{apiSecret}}")
                         .to("mock:result");
             }
         };
diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerPutSingleFileIT.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerPutSingleFileIT.java
index e6b92de896e..7f0f9c5aa06 100644
--- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerPutSingleFileIT.java
+++ b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerPutSingleFileIT.java
@@ -101,7 +101,11 @@ public class DropboxProducerPutSingleFileIT extends DropboxTestSupport {
         return new RouteBuilder() {
             public void configure() {
                 from("direct:start")
-                        .to("dropbox://put?accessToken={{accessToken}}&remotePath=" + workdir + "/" + FILENAME)
+                        .to("dropbox://put?accessToken={{accessToken}}" +
+                            "&expireIn={{expireIn}}" +
+                            "&refreshToken={{refreshToken}}" +
+                            "&apiKey={{apiKey}}&apiSecret={{apiSecret}}" +
+                            "&remotePath=" + workdir + "/" + FILENAME)
                         .to("mock:result");
             }
         };
diff --git a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerSearchQueryIT.java b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerSearchQueryIT.java
index f67188402d3..2059782462f 100644
--- a/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerSearchQueryIT.java
+++ b/components/camel-dropbox/src/test/java/org/apache/camel/component/dropbox/integration/producer/DropboxProducerSearchQueryIT.java
@@ -62,14 +62,22 @@ public class DropboxProducerSearchQueryIT extends DropboxTestSupport {
         return new RouteBuilder() {
             public void configure() {
                 from("direct:start")
-                        .to(String.format("dropbox://search?accessToken={{accessToken}}&remotePath=%s&query=%s", workdir,
+                        .to(String.format("dropbox://search?accessToken={{accessToken}}" +
+                                          "&expireIn={{expireIn}}" +
+                                          "&refreshToken={{refreshToken}}" +
+                                          "&apiKey={{apiKey}}&apiSecret={{apiSecret}}" +
+                                          "&remotePath=%s&query=%s",
+                                workdir,
                                 FILE_NAME))
                         .to("mock:result");
 
                 from("direct:start2")
                         .setHeader(DropboxConstants.HEADER_REMOTE_PATH, constant(workdir))
                         .setHeader(DropboxConstants.HEADER_QUERY, constant(FILE_NAME))
-                        .to("dropbox://search?accessToken={{accessToken}}")
+                        .to("dropbox://search?accessToken={{accessToken}}" +
+                            "&expireIn={{expireIn}}" +
+                            "&refreshToken={{refreshToken}}" +
+                            "&apiKey={{apiKey}}&apiSecret={{apiSecret}}")
                         .to("mock:result");
             }
         };
diff --git a/components/camel-dropbox/src/test/resources/test-options.properties b/components/camel-dropbox/src/test/resources/test-options.properties
index 67c9ec5f7bc..36b7e20df12 100644
--- a/components/camel-dropbox/src/test/resources/test-options.properties
+++ b/components/camel-dropbox/src/test/resources/test-options.properties
@@ -16,5 +16,9 @@
 ## ---------------------------------------------------------------------------
 
 accessToken=
+refreshToken=
+apiKey=
+apiSecret=
+expireIn=
 clientIdentifier=camel-dropbox
-workDir=/camel-test
+workDir=/camel-test
\ No newline at end of file