This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch camel-4.4.x in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-4.4.x by this push: new 2f1fc98430a CAMEL-20388: Restore the old cookieStore Strategy (#13838) 2f1fc98430a is described below commit 2f1fc98430a43d7a8cce91e31e4d9614ce3f87a7 Author: Federico Mariani <34543311+cro...@users.noreply.github.com> AuthorDate: Wed Apr 17 14:28:57 2024 +0200 CAMEL-20388: Restore the old cookieStore Strategy (#13838) --- .../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);