This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new b70721d0c9a CAMEL-20388: Restore the old cookieStore Strategy (#13837)
b70721d0c9a is described below
commit b70721d0c9a1c22d30cd2e1c30787d35405972f7
Author: Federico Mariani <[email protected]>
AuthorDate: Wed Apr 17 14:27:58 2024 +0200
CAMEL-20388: Restore the old cookieStore Strategy (#13837)
---
.../internal/streaming/SubscriptionHelper.java | 46 ++++++++++++++++------
1 file changed, 34 insertions(+), 12 deletions(-)
diff --git
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/streaming/SubscriptionHelper.java
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/streaming/SubscriptionHelper.java
index a4d750568af..d0dd17aafdf 100644
---
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/streaming/SubscriptionHelper.java
+++
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/streaming/SubscriptionHelper.java
@@ -16,21 +16,19 @@
*/
package org.apache.camel.component.salesforce.internal.streaming;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
+import java.io.IOException;
+import java.net.CookieManager;
+import java.net.CookiePolicy;
+import java.net.CookieStore;
+import java.net.URI;
+import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
import java.util.stream.Stream;
import org.apache.camel.CamelException;
-import org.apache.camel.component.salesforce.SalesforceComponent;
-import org.apache.camel.component.salesforce.SalesforceEndpoint;
-import org.apache.camel.component.salesforce.SalesforceEndpointConfig;
-import org.apache.camel.component.salesforce.SalesforceHttpClient;
-import org.apache.camel.component.salesforce.StreamingApiConsumer;
+import org.apache.camel.component.salesforce.*;
import org.apache.camel.component.salesforce.api.SalesforceException;
import org.apache.camel.component.salesforce.internal.SalesforceSession;
import org.apache.camel.support.service.ServiceSupport;
@@ -42,15 +40,15 @@ import org.cometd.client.BayeuxClient.State;
import org.cometd.client.http.jetty.JettyHttpClientTransport;
import org.cometd.client.transport.ClientTransport;
import org.eclipse.jetty.client.Request;
+import org.eclipse.jetty.http.HttpCookie;
+import org.eclipse.jetty.http.HttpCookieStore;
import org.eclipse.jetty.http.HttpHeader;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.cometd.bayeux.Channel.META_CONNECT;
-import static org.cometd.bayeux.Channel.META_HANDSHAKE;
-import static org.cometd.bayeux.Channel.META_SUBSCRIBE;
+import static org.cometd.bayeux.Channel.*;
import static org.cometd.bayeux.Message.ERROR_FIELD;
import static org.cometd.bayeux.Message.SUBSCRIPTION_FIELD;
@@ -393,6 +391,9 @@ public class SubscriptionHelper extends ServiceSupport {
session.login(null);
}
+ CookieStore cookieStore = new CookieManager().getCookieStore();
+ HttpCookieStore httpCookieStore = new HttpCookieStore.Default();
+
ClientTransport transport = new JettyHttpClientTransport(options,
httpClient) {
@Override
protected void customize(Request request) {
@@ -410,6 +411,27 @@ public class SubscriptionHelper extends ServiceSupport {
String finalAccessToken = new String(accessToken);
request.headers(h -> h.add(HttpHeader.AUTHORIZATION, "OAuth "
+ finalAccessToken));
}
+
+ @Override
+ protected void storeCookies(URI uri, Map<String, List<String>>
cookies) {
+ try {
+ CookieManager cookieManager = new
CookieManager(cookieStore, CookiePolicy.ACCEPT_ALL);
+ cookieManager.put(uri, cookies);
+
+ for (java.net.HttpCookie httpCookie :
cookieManager.getCookieStore().getCookies()) {
+ httpCookieStore.add(uri, HttpCookie.from(httpCookie));
+ }
+ } catch (IOException x) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Could not parse cookies", x);
+ }
+ }
+ }
+
+ @Override
+ protected HttpCookieStore getHttpCookieStore() {
+ return httpCookieStore;
+ }
};
BayeuxClient client = new BayeuxClient(getEndpointUrl(component),
transport);