Skip to content

Commit

Permalink
CAMEL-20388: Restore the old cookieStore Strategy (#13837)
Browse files Browse the repository at this point in the history
  • Loading branch information
Croway committed Apr 17, 2024
1 parent 07a96ad commit b70721d
Showing 1 changed file with 34 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -42,15 +40,15 @@
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;

Expand Down Expand Up @@ -393,6 +391,9 @@ static BayeuxClient createClient(final SalesforceComponent component, final Sale
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) {
Expand All @@ -410,6 +411,27 @@ protected void customize(Request request) {
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);
Expand Down

0 comments on commit b70721d

Please sign in to comment.