Use RFC 6265 cookie spec as standard policy

git-svn-id: https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk@1647644 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Oleg Kalnichevski 2014-12-23 19:02:53 +00:00
parent cd41e8998d
commit c4f47f3489
2 changed files with 19 additions and 4 deletions

View File

@ -52,10 +52,17 @@ public final class CookieSpecs {
public static final String NETSCAPE = "netscape";
/**
* The RFC 2965 compliant policy (standard).
* The RFC 6265 compliant policy (interoprability profile).
*/
public static final String STANDARD = "standard";
/**
* The RFC 6265 compliant policy (strict profile).
*
* @since 4.4
*/
public static final String STANDARD_STRICT = "standard-strict";
/**
* The default 'best match' policy.
*

View File

@ -102,7 +102,7 @@
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.RFC2965SpecProvider;
import org.apache.http.impl.cookie.RFC6265CookieSpecProvider;
import org.apache.http.impl.execchain.BackoffStrategyExec;
import org.apache.http.impl.execchain.ClientExecChain;
import org.apache.http.impl.execchain.MainClientExec;
@ -1127,9 +1127,17 @@ public CloseableHttpClient build() {
}
Lookup<CookieSpecProvider> cookieSpecRegistryCopy = this.cookieSpecRegistry;
if (cookieSpecRegistryCopy == null) {
final CookieSpecProvider defaultProvider = new DefaultCookieSpecProvider(publicSuffixMatcherCopy);
final CookieSpecProvider laxStandardProvider = new RFC6265CookieSpecProvider(
RFC6265CookieSpecProvider.CompatibilityLevel.RELAXED, publicSuffixMatcherCopy);
final CookieSpecProvider strictStandardProvider = new RFC6265CookieSpecProvider(
RFC6265CookieSpecProvider.CompatibilityLevel.STRICT, publicSuffixMatcherCopy);
cookieSpecRegistryCopy = RegistryBuilder.<CookieSpecProvider>create()
.register(CookieSpecs.DEFAULT, new DefaultCookieSpecProvider(publicSuffixMatcherCopy))
.register(CookieSpecs.STANDARD, new RFC2965SpecProvider(publicSuffixMatcherCopy))
.register(CookieSpecs.DEFAULT, defaultProvider)
.register("best-match", defaultProvider)
.register("compatibility", defaultProvider)
.register(CookieSpecs.STANDARD, laxStandardProvider)
.register(CookieSpecs.STANDARD_STRICT, strictStandardProvider)
.register(CookieSpecs.NETSCAPE, new NetscapeDraftSpecProvider())
.register(CookieSpecs.IGNORE_COOKIES, new IgnoreSpecProvider())
.build();