[ 
https://issues.apache.org/jira/browse/CAMEL-12899?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16664086#comment-16664086
 ] 

ASF GitHub Bot commented on CAMEL-12899:
----------------------------------------

dhirajsb closed pull request #2580: CAMEL-12899: Fixed default expiryTime 
calculation
URL: https://github.com/apache/camel/pull/2580
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git 
a/components/camel-linkedin/camel-linkedin-component/src/main/docs/linkedin-component.adoc
 
b/components/camel-linkedin/camel-linkedin-component/src/main/docs/linkedin-component.adoc
index c229f0a529d..9d7276a4883 100644
--- 
a/components/camel-linkedin/camel-linkedin-component/src/main/docs/linkedin-component.adoc
+++ 
b/components/camel-linkedin/camel-linkedin-component/src/main/docs/linkedin-component.adoc
@@ -98,7 +98,7 @@ with the following path and query parameters:
 | *accessToken* (common) | LinkedIn access token to avoid username and 
password login. |  | String
 | *clientId* (common) | LinkedIn application client ID |  | String
 | *clientSecret* (common) | LinkedIn application client secret |  | String
-| *expiryTime* (common) | LinkedIn access token expiry time in milliseconds 
since Unix Epoch. | 5184000 | long
+| *expiryTime* (common) | LinkedIn access token expiry time in milliseconds 
since Unix Epoch, default is 60 days in the future. |  | Long
 | *httpParams* (common) | Custom HTTP params, for example proxy host and port, 
use constants from AllClientPNames |  | Map
 | *inBody* (common) | Sets the name of a parameter to be passed in the 
exchange In Body |  | String
 | *lazyAuth* (common) | Flag to enable/disable lazy OAuth, default is true. 
when enabled, OAuth token retrieval or generation is not done until the first 
REST call | true | boolean
diff --git 
a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/DefaultOAuthSecureStorage.java
 
b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/DefaultOAuthSecureStorage.java
index a052daf9d9b..5a5804a7477 100644
--- 
a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/DefaultOAuthSecureStorage.java
+++ 
b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/DefaultOAuthSecureStorage.java
@@ -16,20 +16,23 @@
  */
 package org.apache.camel.component.linkedin;
 
+import java.util.concurrent.TimeUnit;
+
 import org.apache.camel.component.linkedin.api.OAuthSecureStorage;
 import org.apache.camel.component.linkedin.api.OAuthToken;
 import org.apache.camel.component.linkedin.internal.CachingOAuthSecureStorage;
 
 /**
  * Default implementation of {@link OAuthSecureStorage}
- * with user provided token and expiry time in msecs.
+ * with user provided token and optional expiry time in msecs.
  */
 public class DefaultOAuthSecureStorage extends CachingOAuthSecureStorage {
 
-    private OAuthToken token;
-
-    public DefaultOAuthSecureStorage(String accessToken, long expiryTime) {
+    public DefaultOAuthSecureStorage(String accessToken, Long expiryTime) {
         super(null);
+        if (expiryTime == null) {
+            expiryTime = System.currentTimeMillis() + 
TimeUnit.MILLISECONDS.convert(60, TimeUnit.DAYS);
+        }
         this.token = new OAuthToken(null, accessToken, expiryTime);
     }
 }
diff --git 
a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInConfiguration.java
 
b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInConfiguration.java
index 114849cdd6f..59c189d401c 100644
--- 
a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInConfiguration.java
+++ 
b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInConfiguration.java
@@ -18,7 +18,6 @@
 
 import java.util.Arrays;
 import java.util.Map;
-import java.util.concurrent.TimeUnit;
 
 import org.apache.camel.component.linkedin.api.OAuthScope;
 import org.apache.camel.component.linkedin.api.OAuthSecureStorage;
@@ -58,8 +57,8 @@
     private OAuthSecureStorage secureStorage;
     @UriParam
     private String accessToken;
-    @UriParam(defaultValue = "5184000")
-    private long expiryTime = TimeUnit.SECONDS.convert(60, TimeUnit.DAYS);
+    @UriParam
+    private Long expiryTime;
     @UriParam
     private String clientId;
     @UriParam
@@ -132,14 +131,14 @@ public void setAccessToken(String accessToken) {
         this.accessToken = accessToken;
     }
 
-    public long getExpiryTime() {
+    public Long getExpiryTime() {
         return expiryTime;
     }
 
     /**
-     * LinkedIn access token expiry time in milliseconds since Unix Epoch.
+     * LinkedIn access token expiry time in milliseconds since Unix Epoch, 
default is 60 days in the future.
      */
-    public void setExpiryTime(long expiryTime) {
+    public void setExpiryTime(Long expiryTime) {
         this.expiryTime = expiryTime;
     }
 
diff --git 
a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/CachingOAuthSecureStorage.java
 
b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/CachingOAuthSecureStorage.java
index 029e3ab2fec..a263fab6b94 100644
--- 
a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/CachingOAuthSecureStorage.java
+++ 
b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/internal/CachingOAuthSecureStorage.java
@@ -25,7 +25,7 @@
 public class CachingOAuthSecureStorage implements OAuthSecureStorage {
 
     private final OAuthSecureStorage secureStorage;
-    private OAuthToken token;
+    protected OAuthToken token;
 
     public CachingOAuthSecureStorage(OAuthSecureStorage secureStorage) {
         this.secureStorage = secureStorage;
diff --git 
a/platforms/spring-boot/components-starter/camel-linkedin-starter/src/main/java/org/apache/camel/component/linkedin/springboot/LinkedInComponentConfiguration.java
 
b/platforms/spring-boot/components-starter/camel-linkedin-starter/src/main/java/org/apache/camel/component/linkedin/springboot/LinkedInComponentConfiguration.java
index b26303b7cdf..bdad01867e3 100644
--- 
a/platforms/spring-boot/components-starter/camel-linkedin-starter/src/main/java/org/apache/camel/component/linkedin/springboot/LinkedInComponentConfiguration.java
+++ 
b/platforms/spring-boot/components-starter/camel-linkedin-starter/src/main/java/org/apache/camel/component/linkedin/springboot/LinkedInComponentConfiguration.java
@@ -101,9 +101,10 @@ public void setResolvePropertyPlaceholders(
          */
         private String accessToken;
         /**
-         * LinkedIn access token expiry time in milliseconds since Unix Epoch.
+         * LinkedIn access token expiry time in milliseconds since Unix Epoch,
+         * default is 60 days in the future.
          */
-        private Long expiryTime = 5184000L;
+        private Long expiryTime;
         /**
          * LinkedIn application client ID
          */


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


> Handle LinkedIn Captcha redirects gracefully
> --------------------------------------------
>
>                 Key: CAMEL-12899
>                 URL: https://issues.apache.org/jira/browse/CAMEL-12899
>             Project: Camel
>          Issue Type: Bug
>    Affects Versions: 2.22.1
>            Reporter: Dhiraj Bokde
>            Assignee: Dhiraj Bokde
>            Priority: Major
>              Labels: LinkedIn, camel-linkedin
>             Fix For: 2.22.2
>
>
> Currently LinkedIn component throws the exception
> {code:java}
> java.lang.SecurityException: Invalid CSRF code!{code}
> when LinkedIn responds with a CAPTCHA instead of a login token. 
> Instead it should detect ac CAPTCHA response and print an appropriate 
> message. In addition, since username and password authentication may not 
> work, the component should support configuring a user generated access token 
> to bypass the LinkedIn login process and still be able to use LinkedIn API. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to