@Override public CookieSpec create(final HttpContext context) { if (cookieSpec == null) { synchronized (this) { if (cookieSpec == null) { final RFC2965Spec strict = new RFC2965Spec( this.oneHeader, new RFC2965VersionAttributeHandler(), new BasicPathHandler(), PublicSuffixDomainFilter.decorate( new RFC2965DomainAttributeHandler(), this.publicSuffixMatcher), new RFC2965PortAttributeHandler(), new BasicMaxAgeHandler(), new BasicSecureHandler(), new BasicCommentHandler(), new RFC2965CommentUrlAttributeHandler(), new RFC2965DiscardAttributeHandler()); final RFC2109Spec obsoleteStrict = new RFC2109Spec( this.oneHeader, new RFC2109VersionHandler(), new BasicPathHandler(), PublicSuffixDomainFilter.decorate( new RFC2109DomainHandler(), this.publicSuffixMatcher), new BasicMaxAgeHandler(), new BasicSecureHandler(), new BasicCommentHandler()); final NetscapeDraftSpec netscapeDraft = new NetscapeDraftSpec( PublicSuffixDomainFilter.decorate( new BasicDomainHandler(), this.publicSuffixMatcher), this.compatibilityLevel == CompatibilityLevel.IE_MEDIUM_SECURITY ? new BasicPathHandler() { @Override public void validate(final Cookie cookie, final CookieOrigin origin) throws MalformedCookieException { // No validation } } : new BasicPathHandler(), new BasicSecureHandler(), new BasicCommentHandler(), new BasicExpiresHandler( this.datepatterns != null ? this.datepatterns.clone() : new String[] {NetscapeDraftSpec.EXPIRES_PATTERN})); this.cookieSpec = new DefaultCookieSpec(strict, obsoleteStrict, netscapeDraft); } } } return this.cookieSpec; }
@Override public CookieSpec create(final HttpContext context) { if (cookieSpec == null) { synchronized (this) { if (cookieSpec == null) { final RFC2965Spec strict = new RFC2965Spec( false, new RFC2965VersionAttributeHandler(), new BasicPathHandler() { @Override public void validate(final Cookie cookie, final CookieOrigin origin) throws MalformedCookieException { // No validation } }, new LaxPublicSuffixFilter( PublicSuffixDomainFilter.decorate( new RFC2965DomainAttributeHandler() { @Override public void validate(Cookie cookie, CookieOrigin origin) throws MalformedCookieException { // No validation } }, PublicSuffixMatcherLoader.getDefault())), new RFC2965PortAttributeHandler(), new BasicMaxAgeHandler(), new BasicSecureHandler(), new BasicCommentHandler(), new RFC2965CommentUrlAttributeHandler(), new RFC2965DiscardAttributeHandler()); final RFC2109Spec obsoleteStrict = new RFC2109Spec( false, new RFC2109VersionHandler(), new BasicPathHandler() { @Override public void validate(final Cookie cookie, final CookieOrigin origin) throws MalformedCookieException { // No validation } }, new LaxPublicSuffixFilter( PublicSuffixDomainFilter.decorate( new RFC2109DomainHandler() { @Override public void validate(Cookie cookie, CookieOrigin origin) throws MalformedCookieException { // No validation } }, PublicSuffixMatcherLoader.getDefault())), new BasicMaxAgeHandler(), new BasicSecureHandler(), new BasicCommentHandler()); final NetscapeDraftSpec netscapeDraft = new NetscapeDraftSpec( new LaxPublicSuffixFilter( PublicSuffixDomainFilter.decorate( new BasicDomainHandler() { @Override public void validate(Cookie cookie, CookieOrigin origin) throws MalformedCookieException { // No validation } }, PublicSuffixMatcherLoader.getDefault())), new BasicPathHandler() { @Override public void validate(final Cookie cookie, final CookieOrigin origin) throws MalformedCookieException { // No validation } }, new BasicSecureHandler(), new BasicCommentHandler(), new BasicExpiresHandler(DATE_PATTERNS)); this.cookieSpec = new DefaultCookieSpec(strict, obsoleteStrict, netscapeDraft); } } } return this.cookieSpec; }