
com.jn.agileway.httpclient.CookieSpecs Maven / Gradle / Ivy
package com.jn.agileway.httpclient;
import com.jn.langx.util.collection.Collects;
import org.apache.http.config.RegistryBuilder;
import org.apache.http.conn.util.PublicSuffixMatcher;
import org.apache.http.conn.util.PublicSuffixMatcherLoader;
import org.apache.http.cookie.CookieSpecProvider;
import org.apache.http.impl.cookie.DefaultCookieSpecProvider;
import org.apache.http.impl.cookie.IgnoreSpecProvider;
import org.apache.http.impl.cookie.NetscapeDraftSpecProvider;
import org.apache.http.impl.cookie.RFC6265CookieSpecProvider;
import java.util.List;
public class CookieSpecs {
private CookieSpecs() {
}
private static final List COOKIE_DATE_PATTERNS = Collects.asList(
"EEE',' dd-MMM-yyyy HH:mm:ss 'GMT'",
"EEE',' dd MMM yyyy HH:mm:ss 'GMT'",
"EEE MMM dd yyyy HH:mm:ss 'GMT'Z",
"EEE',' dd-MMM-yy HH:mm:ss 'GMT'",
"EEE',' dd MMM yy HH:mm:ss 'GMT'",
"EEE MMM dd yy HH:mm:ss 'GMT'Z"
);
public static RegistryBuilder createDefaultCookieSpecProviderBuilder() {
return createDefaultCookieSpecProviderBuilder(PublicSuffixMatcherLoader.getDefault());
}
public static RegistryBuilder createDefaultCookieSpecProviderBuilder(
final PublicSuffixMatcher publicSuffixMatcher) {
return createDefaultCookieSpecProviderBuilder(publicSuffixMatcher, COOKIE_DATE_PATTERNS);
}
public static RegistryBuilder createDefaultCookieSpecProviderBuilder(
final PublicSuffixMatcher publicSuffixMatcher,
List expiresDatePatterns) {
return createDefaultCookieSpecProviderBuilder(null, publicSuffixMatcher, expiresDatePatterns);
}
/**
* Creates a builder containing the default registry entries, using the provided public suffix matcher.
*/
public static RegistryBuilder createDefaultCookieSpecProviderBuilder(
DefaultCookieSpecProvider.CompatibilityLevel compatibilityLevel,
final PublicSuffixMatcher publicSuffixMatcher,
List expiresDatePatterns) {
compatibilityLevel = compatibilityLevel == null ? DefaultCookieSpecProvider.CompatibilityLevel.DEFAULT : compatibilityLevel;
String[] datePatterns = expiresDatePatterns == null ? null : Collects.toArray(expiresDatePatterns, String[].class);
final CookieSpecProvider defaultProvider = new DefaultCookieSpecProvider(compatibilityLevel, publicSuffixMatcher, datePatterns, false);
final CookieSpecProvider laxStandardProvider = new RFC6265CookieSpecProvider(
RFC6265CookieSpecProvider.CompatibilityLevel.RELAXED, publicSuffixMatcher);
final CookieSpecProvider strictStandardProvider = new RFC6265CookieSpecProvider(
RFC6265CookieSpecProvider.CompatibilityLevel.STRICT, publicSuffixMatcher);
return RegistryBuilder.create()
.register(org.apache.http.client.config.CookieSpecs.DEFAULT, defaultProvider)
.register("best-match", defaultProvider)
.register("compatibility", defaultProvider)
.register(org.apache.http.client.config.CookieSpecs.STANDARD, laxStandardProvider)
.register(org.apache.http.client.config.CookieSpecs.STANDARD_STRICT, strictStandardProvider)
.register(org.apache.http.client.config.CookieSpecs.NETSCAPE, new NetscapeDraftSpecProvider())
.register(org.apache.http.client.config.CookieSpecs.IGNORE_COOKIES, new IgnoreSpecProvider());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy