/*
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
package java.net;
/**
* CookiePolicy implementations decide which cookies should be accepted
* and which should be rejected. Three pre-defined policy implementations
* are provided, namely ACCEPT_ALL, ACCEPT_NONE and ACCEPT_ORIGINAL_SERVER.
*
* <p>See RFC 2965 sec. 3.3 and 7 for more detail.
*
* @author Edward Wang
* @since 1.6
*/
public interface
CookiePolicy {
/**
* One pre-defined policy which accepts all cookies.
*/
public static final
CookiePolicy ACCEPT_ALL = new
CookiePolicy(){
public boolean
shouldAccept(
URI uri,
HttpCookie cookie) {
return true;
}
};
/**
* One pre-defined policy which accepts no cookies.
*/
public static final
CookiePolicy ACCEPT_NONE = new
CookiePolicy(){
public boolean
shouldAccept(
URI uri,
HttpCookie cookie) {
return false;
}
};
/**
* One pre-defined policy which only accepts cookies from original server.
*/
public static final
CookiePolicy ACCEPT_ORIGINAL_SERVER = new
CookiePolicy(){
public boolean
shouldAccept(
URI uri,
HttpCookie cookie) {
if (
uri == null ||
cookie == null)
return false;
return
HttpCookie.
domainMatches(
cookie.
getDomain(),
uri.
getHost());
}
};
/**
* Will be called to see whether or not this cookie should be accepted.
*
* @param uri the URI to consult accept policy with
* @param cookie the HttpCookie object in question
* @return {@code true} if this cookie should be accepted;
* otherwise, {@code false}
*/
public boolean
shouldAccept(
URI uri,
HttpCookie cookie);
}