Class CookieManager
java.lang.Object
java.net.CookieHandler
com.sun.xml.ws.transport.http.client.CookieManager
CookieManager provides a concrete implementation of
CookieHandler
,
which separates the storage of cookies from the policy surrounding accepting
and rejecting cookies. A CookieManager is initialized with a CookieStore
which manages storage, and a CookiePolicy
object, which makes
policy decisions on cookie acceptance/rejection.
The HTTP cookie management in java.net package looks like:
use CookieHandler <------- HttpURLConnection ^ | impl | use CookieManager -------> CookiePolicy | use |--------> HttpCookie | ^ | | use | use | |--------> CookieStore ^ | impl | Internal in-memory implementation
- CookieHandler is at the core of cookie management. User can call CookieHandler.setDefault to set a concrete CookieHanlder implementation to be used.
- CookiePolicy.shouldAccept will be called by CookieManager.put to see whether or not one cookie should be accepted and put into cookie store. User can use any of three pre-defined CookiePolicy, namely ACCEPT_ALL, ACCEPT_NONE and ACCEPT_ORIGINAL_SERVER, or user can define his own CookiePolicy implementation and tell CookieManager to use it.
- CookieStore is the place where any accepted HTTP cookie is stored in. If not specified when created, a CookieManager instance will use an internal in-memory implementation. Or user can implements one and tell CookieManager to use it.
- Currently, only CookieStore.add(URI, HttpCookie) and CookieStore.get(URI) are used by CookieManager. Others are for completeness and might be needed by a more sophisticated CookieStore implementation, e.g. a NetscapeCookieSotre.
There're various ways user can hook up his own HTTP cookie management behavior, e.g.
- Use CookieHandler.setDefault to set a brand new
CookieHandler
implementation- Let CookieManager be the default
CookieHandler
implementation, but implement user's ownCookieStore
andCookiePolicy
and tell default CookieManager to use them:// this should be done at the beginning of an HTTP session CookieHandler.setDefault(new CookieManager(new MyCookieStore(), new MyCookiePolicy()));- Let CookieManager be the default
CookieHandler
implementation, but use customizedCookiePolicy
:// this should be done at the beginning of an HTTP session CookieHandler.setDefault(new CookieManager()); // this can be done at any point of an HTTP session ((CookieManager)CookieHandler.getDefault()).setCookiePolicy(new MyCookiePolicy());
The implementation conforms to RFC 2965, section 3.3.
- Since:
- 1.6
- Version:
- %I%, %E%
- Author:
- Edward Wang
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionCreate a new cookie manager.CookieManager
(com.sun.xml.ws.transport.http.client.CookieStore store, CookiePolicy cookiePolicy) Create a new cookie manager with specified cookie store and cookie policy. -
Method Summary
Modifier and TypeMethodDescriptioncom.sun.xml.ws.transport.http.client.CookieStore
To retrieve current cookie store.void
void
setCookiePolicy
(CookiePolicy cookiePolicy) To set the cookie policy of this cookie manager.Methods inherited from class java.net.CookieHandler
getDefault, setDefault
-
Constructor Details
-
CookieManager
public CookieManager()Create a new cookie manager.This constructor will create new cookie manager with default cookie store and accept policy. The effect is same as
CookieManager(null, null)
. -
CookieManager
public CookieManager(com.sun.xml.ws.transport.http.client.CookieStore store, CookiePolicy cookiePolicy) Create a new cookie manager with specified cookie store and cookie policy.- Parameters:
store
- aCookieStore
to be used by cookie manager. ifnull
, cookie manager will use a default one, which is an in-memory CookieStore implmentation.cookiePolicy
- aCookiePolicy
instance to be used by cookie manager as policy callback. ifnull
, ACCEPT_ORIGINAL_SERVER will be used.
-
-
Method Details
-
setCookiePolicy
To set the cookie policy of this cookie manager.A instance of
CookieManager
will have cookie policy ACCEPT_ORIGINAL_SERVER by default. Users always can call this method to set another cookie policy.- Parameters:
cookiePolicy
- the cookie policy. Can benull
, which has no effects on current cookie policy.
-
getCookieStore
public com.sun.xml.ws.transport.http.client.CookieStore getCookieStore()To retrieve current cookie store.- Returns:
- the cookie store currently used by cookie manager.
-
get
public Map<String,List<String>> get(URI uri, Map<String, List<String>> requestHeaders) throws IOException- Specified by:
get
in classCookieHandler
- Throws:
IOException
-
put
- Specified by:
put
in classCookieHandler
- Throws:
IOException
-