org.apache.commons.httpclient

Class Cookie

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: 531354 $ $Date: 2007-04-23 08:53:20 +0200 (Mon, 23 Apr 2007) $

Author: 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
intcompare(Object o1, Object o2)

Compares two cookies to determine order for cookie header.

Most specific should be first.

booleanequals(Object obj)
Two cookies are equal if the name, path and domain match.
StringgetComment()
Returns the comment describing the purpose of this cookie, or null if no such comment has been defined.
StringgetDomain()
Returns domain attribute of the cookie.
DategetExpiryDate()
Returns the expiration Date of the cookie, or null if none exists.
StringgetPath()
Returns the path attribute of the cookie
booleangetSecure()
intgetVersion()
Returns the version of the cookie specification to which this cookie conforms.
inthashCode()
Returns a hash code in keeping with the Object#hashCode general hashCode contract.
booleanisDomainAttributeSpecified()
Returns true if cookie's domain was set via a domain attribute in the Set-Cookie header.
booleanisExpired()
Returns true if this cookie has expired.
booleanisExpired(Date now)
Returns true if this cookie has expired according to the time passed in.
booleanisPathAttributeSpecified()
Returns true if cookie's path was set via a path attribute in the Set-Cookie header.
booleanisPersistent()
Returns false if the cookie should be discarded at the end of the "session"; true otherwise.
voidsetComment(String comment)
If a user agent (web browser) presents this cookie to a user, the cookie's purpose will be described using this comment.
voidsetDomain(String domain)
Sets the domain attribute.
voidsetDomainAttributeSpecified(boolean value)
Indicates whether the cookie had a domain specified in a domain attribute of the Set-Cookie header.
voidsetExpiryDate(Date expiryDate)
Sets expiration date.
voidsetPath(String path)
Sets the path attribute.
voidsetPathAttributeSpecified(boolean value)
Indicates whether the cookie had a path specified in a path attribute of the Set-Cookie header.
voidsetSecure(boolean secure)
Sets the secure attribute of the cookie.
voidsetVersion(int version)
Sets the version of the cookie specification to which this cookie conforms.
StringtoExternalForm()
Return a textual representation of the cookie.
StringtoString()
Return a textual representation of the cookie.

Constructor Detail

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: name the cookie name value the cookie value domain the domain this cookie can be sent to

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: name the cookie name value the cookie value domain the domain this cookie can be sent to 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

Throws: IllegalArgumentException If cookie name is null or blank, cookie name contains a blank, or cookie name starts with character $

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: name the cookie name value the cookie value domain the domain this cookie can be sent to 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 Detail

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.

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

See Also: setComment

getDomain

public String getDomain()
Returns domain attribute of the cookie.

Returns: the value of the domain attribute

See Also: Cookie

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:

getPath

public String getPath()
Returns the path attribute of the cookie

Returns: The value of the path attribute.

See Also: Cookie

getSecure

public boolean getSecure()

Returns: true if this cookie should only be sent over secure connections.

See Also: Cookie

getVersion

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

Returns: the version of the cookie.

See Also:

hashCode

public int hashCode()
Returns a hash code in keeping with the Object#hashCode general hashCode contract.

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.

See Also: Cookie

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.

See Also: Cookie

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

See Also: getComment

setDomain

public void setDomain(String domain)
Sets the domain attribute.

Parameters: domain The value of the domain attribute

See Also: Cookie

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.

See Also: Cookie

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.

See Also: Cookie

setPath

public void setPath(String path)
Sets the path attribute.

Parameters: path The value of the path attribute

See Also: Cookie

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.

See Also: Cookie

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

See Also: getSecure

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.

See Also: 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.

Returns: string.

See Also: Cookie

Copyright (c) 1999-2005 - Apache Software Foundation