org.apache.commons.httpclient

Class Cookie

Implemented Interfaces:
Comparator, Serializable

public class Cookie
extends NameValuePair
implements Serializable, Comparator

HTTP "magic-cookie" represents a piece of state information that the HTTP agent and the target server can exchange to maintain a session.
Version:
$Revision: 157457 $ $Date: 2005-03-14 15:23:16 -0500 (Mon, 14 Mar 2005) $
Authors:
B.C. Holmes
Park, Sung-Gu
Doug Sale
Rod Waldhoff
dIon Gillard
Sean C. Sullivan
John Evans
Marc A. Saegesser
Oleg Kalnichevski
Mike Bowler

Constructor Summary

Cookie()
Default constructor.
Cookie(String domain, String name, String value)
Creates a cookie with the given name, value and domain attribute.
Cookie(String domain, String name, String value, String path, Date expires, boolean secure)
Creates a cookie with the given name, value, domain attribute, path attribute, expiration attribute, and secure attribute
Cookie(String domain, String name, String value, String path, int maxAge, boolean secure)
Creates a cookie with the given name, value, domain attribute, path attribute, maximum age attribute, and secure attribute

Method Summary

int
compare(Object o1, Object o2)
Compares two cookies to determine order for cookie header.
boolean
equals(Object obj)
Two cookies are equal if the name, path and domain match.
String
getComment()
Returns the comment describing the purpose of this cookie, or null if no such comment has been defined.
String
getDomain()
Returns domain attribute of the cookie.
Date
getExpiryDate()
Returns the expiration Date of the cookie, or null if none exists.
String
getPath()
Returns the path attribute of the cookie
boolean
getSecure()
int
getVersion()
Returns the version of the cookie specification to which this cookie conforms.
int
hashCode()
Returns a hash code in keeping with the Object.hashCode general hashCode contract.
boolean
isDomainAttributeSpecified()
Returns true if cookie's domain was set via a domain attribute in the Set-Cookie header.
boolean
isExpired()
Returns true if this cookie has expired.
boolean
isExpired(Date now)
Returns true if this cookie has expired according to the time passed in.
boolean
isPathAttributeSpecified()
Returns true if cookie's path was set via a path attribute in the Set-Cookie header.
boolean
isPersistent()
Returns false if the cookie should be discarded at the end of the "session"; true otherwise.
void
setComment(String comment)
If a user agent (web browser) presents this cookie to a user, the cookie's purpose will be described using this comment.
void
setDomain(String domain)
Sets the domain attribute.
void
setDomainAttributeSpecified(boolean value)
Indicates whether the cookie had a domain specified in a domain attribute of the Set-Cookie header.
void
setExpiryDate(Date expiryDate)
Sets expiration date.
void
setPath(String path)
Sets the path attribute.
void
setPathAttributeSpecified(boolean value)
Indicates whether the cookie had a path specified in a path attribute of the Set-Cookie header.
void
setSecure(boolean secure)
Sets the secure attribute of the cookie.
void
setVersion(int version)
Sets the version of the cookie specification to which this cookie conforms.
String
toExternalForm()
Return a textual representation of the cookie.
String
toString()
Return a textual representation of the cookie.

Methods inherited from class org.apache.commons.httpclient.NameValuePair

equals, getName, getValue, hashCode, setName, setValue, toString

Constructor Details

Cookie

public Cookie()
Default constructor. Creates a blank cookie

Cookie

public Cookie(String domain,
              String name,
              String value)
Creates a cookie with the given name, value and domain attribute.
Parameters:
domain - the domain this cookie can be sent to
name - the cookie name
value - the cookie value

Cookie

public Cookie(String domain,
              String name,
              String value,
              String path,
              Date expires,
              boolean secure)
Creates a cookie with the given name, value, domain attribute, path attribute, expiration attribute, and secure attribute
Parameters:
domain - the domain this cookie can be sent to
name - the cookie name
value - the cookie value
path - the path prefix for which this cookie can be sent
expires - the Date at which this cookie expires, or null if the cookie expires at the end of the session
secure - if true this cookie can only be sent over secure connections

Cookie

public Cookie(String domain,
              String name,
              String value,
              String path,
              int maxAge,
              boolean secure)
Creates a cookie with the given name, value, domain attribute, path attribute, maximum age attribute, and secure attribute
Parameters:
domain - the domain this cookie can be sent to
name - the cookie name
value - the cookie value
path - the path prefix for which this cookie can be sent
maxAge - the number of seconds for which this cookie is valid. maxAge is expected to be a non-negative number. -1 signifies that the cookie should never expire.
secure - if true this cookie can only be sent over secure connections

Method Details

compare

public int compare(Object o1,
                   Object o2)
Compares two cookies to determine order for cookie header.

Most specific should be first.

This method is implemented so a cookie can be used as a comparator for a SortedSet of cookies. Specifically it's used above in the createCookieHeader method.

Parameters:
o1 - The first object to be compared
o2 - The second object to be compared
Returns:
See java.util.Comparator.compare(Object,Object)

equals

public boolean equals(Object obj)
Two cookies are equal if the name, path and domain match.
Overrides:
equals in interface NameValuePair
Parameters:
obj - The object to compare against.
Returns:
true if the two objects are equal.

getComment

public String getComment()
Returns the comment describing the purpose of this cookie, or null if no such comment has been defined.
Returns:
comment

getDomain

public String getDomain()
Returns domain attribute of the cookie.
Returns:
the value of the domain attribute
See Also:
setDomain(java.lang.String)

getExpiryDate

public Date getExpiryDate()
Returns the expiration Date of the cookie, or null if none exists.

Note: the object returned by this method is considered immutable. Changing it (e.g. using setTime()) could result in undefined behaviour. Do so at your peril.

Returns:
Expiration Date, or null.
See Also:
setExpiryDate(java.util.Date)

getPath

public String getPath()
Returns the path attribute of the cookie
Returns:
The value of the path attribute.
See Also:
setPath(java.lang.String)

getSecure

public boolean getSecure()
Returns:
true if this cookie should only be sent over secure connections.

getVersion

public int getVersion()
Returns the version of the cookie specification to which this cookie conforms.
Returns:
the version of the cookie.

hashCode

public int hashCode()
Returns a hash code in keeping with the Object.hashCode general hashCode contract.
Overrides:
hashCode in interface NameValuePair
Returns:
A hash code

isDomainAttributeSpecified

public boolean isDomainAttributeSpecified()
Returns true if cookie's domain was set via a domain attribute in the Set-Cookie header.
Returns:
value true if the cookie's domain was explicitly set, false otherwise.

isExpired

public boolean isExpired()
Returns true if this cookie has expired.
Returns:
true if the cookie has expired.

isExpired

public boolean isExpired(Date now)
Returns true if this cookie has expired according to the time passed in.
Parameters:
now - The current time.
Returns:
true if the cookie expired.

isPathAttributeSpecified

public boolean isPathAttributeSpecified()
Returns true if cookie's path was set via a path attribute in the Set-Cookie header.
Returns:
value true if the cookie's path was explicitly set, false otherwise.

isPersistent

public boolean isPersistent()
Returns false if the cookie should be discarded at the end of the "session"; true otherwise.
Returns:
false if the cookie should be discarded at the end of the "session"; true otherwise

setComment

public void setComment(String comment)
If a user agent (web browser) presents this cookie to a user, the cookie's purpose will be described using this comment.
Parameters:
comment -

setDomain

public void setDomain(String domain)
Sets the domain attribute.
Parameters:
domain - The value of the domain attribute

setDomainAttributeSpecified

public void setDomainAttributeSpecified(boolean value)
Indicates whether the cookie had a domain specified in a domain attribute of the Set-Cookie header. This value is important for generating the Cookie header because some cookie specifications require that the Cookie header should only include a domain attribute if the cookie's domain was specified in the Set-Cookie header.
Parameters:
value - true if the cookie's domain was explicitly set, false otherwise.

setExpiryDate

public void setExpiryDate(Date expiryDate)
Sets expiration date.

Note: the object returned by this method is considered immutable. Changing it (e.g. using setTime()) could result in undefined behaviour. Do so at your peril.

Parameters:
expiryDate - the Date after which this cookie is no longer valid.

setPath

public void setPath(String path)
Sets the path attribute.
Parameters:
path - The value of the path attribute

setPathAttributeSpecified

public void setPathAttributeSpecified(boolean value)
Indicates whether the cookie had a path specified in a path attribute of the Set-Cookie header. This value is important for generating the Cookie header because some cookie specifications require that the Cookie header should only include a path attribute if the cookie's path was specified in the Set-Cookie header.
Parameters:
value - true if the cookie's path was explicitly set, false otherwise.

setSecure

public void setSecure(boolean secure)
Sets the secure attribute of the cookie.

When true the cookie should only be sent using a secure protocol (https). This should only be set when the cookie's originating server used a secure protocol to set the cookie's value.

Parameters:
secure - The value of the secure attribute

setVersion

public void setVersion(int version)
Sets the version of the cookie specification to which this cookie conforms.
Parameters:
version - the version of the cookie.

toExternalForm

public String toExternalForm()
Return a textual representation of the cookie.
Returns:
string.

toString

public String toString()
Return a textual representation of the cookie.
Overrides:
toString in interface NameValuePair
Returns:
string.

Copyright (c) 1999-2005 - Apache Software Foundation