You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Mabrouk Belhout (JIRA)" <ji...@apache.org> on 2017/11/02 11:01:00 UTC

[jira] [Created] (CAMEL-11980) PushTopic client doesn't clear refresh token after a long disconnected period

Mabrouk Belhout created CAMEL-11980:
---------------------------------------

             Summary: PushTopic client doesn't clear refresh token after a long disconnected period
                 Key: CAMEL-11980
                 URL: https://issues.apache.org/jira/browse/CAMEL-11980
             Project: Camel
          Issue Type: Bug
          Components: camel-salesforce
    Affects Versions: 2.19.0
         Environment: Salesforce API version 41.0 (we don't know if this affect other API versions)
            Reporter: Mabrouk Belhout
            Priority: Major


The bayeux client implements a mechanism to reconnect to salesforce's pushtopic after a network failure.

In production, we experienced a lost of network connection. Bayeux client tried to reconnect and failed to.
when analyzing, we saw a bunch of logs  

o.a.c.c.s.i.s.SubscriptionHelper : Error restarting: Error during HANDSHAKE: 403::Handshake denied org.apache.camel.CamelException: Error during HANDSHAKE: 403::Handshake denied
o.a.c.c.s.i.s.SubscriptionHelper : Failed to restart after pausing for 0 msecs 
[skipped...]
o.a.c.c.s.i.s.SubscriptionHelper : Error restarting: Error during HANDSHAKE: 403::Handshake denied org.apache.camel.CamelException: Error during HANDSHAKE: 403::Handshake denied
o.a.c.c.s.i.s.SubscriptionHelper : Failed to restart after pausing for 5000 msecs 
[skipped...]
o.a.c.c.s.i.s.SubscriptionHelper : Error restarting: Error during HANDSHAKE: 403::Handshake denied org.apache.camel.CamelException: Error during HANDSHAKE: 403::Handshake denied
o.a.c.c.s.i.s.SubscriptionHelper : Failed to restart after pausing for 24000 msecs 
[skipped...]
o.a.c.c.s.i.s.SubscriptionHelper : Error restarting: Error during HANDSHAKE: 403::Handshake denied org.apache.camel.CamelException: Error during HANDSHAKE: 403::Handshake denied
o.a.c.c.s.i.s.SubscriptionHelper : Failed to restart after pausing for 30000 msecs 

o.a.c.c.s.SalesforceConsumer : Aborting restart attempt due to: Error during HANDSHAKE: 403::Handshake denied. Caused by: [org.apache.camel.component.salesforce.api.SalesforceException - Aborting restart attempt due to: Error during HANDSHAKE: 403::Handshake denied] org.apache.camel.component.salesforce.api.SalesforceException: Aborting restart attempt due to: Error during HANDSHAKE: 403::Handshake denied
then the stacktrace.


When going deeped in analyzing, we figure out that Salesforce, after such a loss of network, can answer by a 401 code (subscription to channel is not valid anymore)  and in some circumstances by a 403 code (authentication is not valid anymore - the refresh token has been invalidated by salesforce).

401 code implies that the client reissue a login with same refreshToken.
403 code implies that the client reissue a new login phase ( thus invalidating the previous refreshToken).


401 code is already handled by SubscriptionHelper, while 403 is not.
see the doStart() method after the handshakeError test




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)