org.apache.commons.httpclient.cookie

Class CookieSpecBase

Implemented Interfaces:
CookieSpec
Known Direct Subclasses:
NetscapeDraftSpec, RFC2109Spec

public class CookieSpecBase
extends java.lang.Object
implements CookieSpec

Cookie management functions shared by all specification.
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
Since:
2.0

Field Summary

protected static Log
LOG
Log object

Fields inherited from interface org.apache.commons.httpclient.cookie.CookieSpec

PATH_DELIM, PATH_DELIM_CHAR

Constructor Summary

CookieSpecBase()
Default constructor

Method Summary

boolean
domainMatch(String host, String domain)
Performs domain-match as implemented in common browsers.
String
formatCookie(Cookie cookie)
Return a string suitable for sending in a "Cookie" header
Header
formatCookieHeader(Cookie cookie)
Create a "Cookie" Header containing the Cookie.
Header
formatCookieHeader(Cookie[] cookies)
Create a "Cookie" Header containing all Cookies in cookies.
String
formatCookies(Cookie[] cookies)
Create a "Cookie" header value containing all Cookies in cookies suitable for sending in a "Cookie" header
Collection
getValidDateFormats()
Cookie[]
match(String host, int port, String path, boolean secure, cookies[] )
Return an array of Cookies that should be submitted with a request with given attributes, false otherwise.
boolean
match(String host, int port, String path, boolean secure, Cookie cookie)
Return true if the cookie should be submitted with a request with given attributes, false otherwise.
Cookie[]
parse(String host, int port, String path, boolean secure, String header)
Parses the Set-Cookie value into an array of Cookies.
Cookie[]
parse(String host, int port, String path, boolean secure, Header header)
Parse the "Set-Cookie" Header into an array of Cookies.
void
parseAttribute(NameValuePair attribute, Cookie cookie)
Parse the cookie attribute and update the corresponsing Cookie properties.
boolean
pathMatch(String path, String topmostPath)
Performs path-match as implemented in common browsers.
void
setValidDateFormats(Collection datepatterns)
void
validate(String host, int port, String path, boolean secure, Cookie cookie)
Performs most common Cookie validation

Field Details

LOG

protected static final Log LOG
Log object

Constructor Details

CookieSpecBase

public CookieSpecBase()
Default constructor

Method Details

domainMatch

public boolean domainMatch(String host,
                           String domain)
Performs domain-match as implemented in common browsers.
Specified by:
domainMatch in interface CookieSpec
Parameters:
host - The target host.
domain - The cookie domain attribute.
Returns:
true if the specified host matches the given domain.

formatCookie

public String formatCookie(Cookie cookie)
Return a string suitable for sending in a "Cookie" header
Specified by:
formatCookie in interface CookieSpec
Parameters:
cookie - a Cookie to be formatted as string
Returns:
a string suitable for sending in a "Cookie" header.

formatCookieHeader

public Header formatCookieHeader(Cookie cookie)
Create a "Cookie" Header containing the Cookie.
Specified by:
formatCookieHeader in interface CookieSpec
Parameters:
cookie - Cookies to be formatted as a Cookie header
Returns:
a Cookie header.

formatCookieHeader

public Header formatCookieHeader(Cookie[] cookies)
Create a "Cookie" Header containing all Cookies in cookies.
Specified by:
formatCookieHeader in interface CookieSpec
Parameters:
cookies - an array of Cookies to be formatted as a " Cookie" header
Returns:
a "Cookie" Header.

formatCookies

public String formatCookies(Cookie[] cookies)
            throws IllegalArgumentException
Create a "Cookie" header value containing all Cookies in cookies suitable for sending in a "Cookie" header
Specified by:
formatCookies in interface CookieSpec
Parameters:
cookies - an array of Cookies to be formatted
Returns:
a string suitable for sending in a Cookie header.

getValidDateFormats

public Collection getValidDateFormats()
Specified by:
getValidDateFormats in interface CookieSpec

match

public Cookie[] match(String host,
                      int port,
                      String path,
                      boolean secure,
                      cookies[] )
Return an array of Cookies that should be submitted with a request with given attributes, false otherwise.
Specified by:
match in interface CookieSpec
Parameters:
host - the host to which the request is being submitted
port - the port to which the request is being submitted (currently ignored)
path - the path to which the request is being submitted
secure - true if the request is using a secure protocol
Returns:
an array of Cookies matching the criterium

match

public boolean match(String host,
                     int port,
                     String path,
                     boolean secure,
                     Cookie cookie)
Return true if the cookie should be submitted with a request with given attributes, false otherwise.
Specified by:
match in interface CookieSpec
Parameters:
host - the host to which the request is being submitted
port - the port to which the request is being submitted (ignored)
path - the path to which the request is being submitted
secure - true if the request is using a secure connection
cookie - Cookie to be matched
Returns:
true if the cookie matches the criterium

parse

public Cookie[] parse(String host,
                      int port,
                      String path,
                      boolean secure,
                      String header)
            throws MalformedCookieException
Parses the Set-Cookie value into an array of Cookies.

The syntax for the Set-Cookie response header is:

 set-cookie      =    "Set-Cookie:" cookies
 cookies         =    1#cookie
 cookie          =    NAME "=" VALUE * (";" cookie-av)
 NAME            =    attr
 VALUE           =    value
 cookie-av       =    "Comment" "=" value
                 |    "Domain" "=" value
                 |    "Max-Age" "=" value
                 |    "Path" "=" value
                 |    "Secure"
                 |    "Version" "=" 1*DIGIT
 
Specified by:
parse in interface CookieSpec
Parameters:
host - the host from which the Set-Cookie value was received
port - the port from which the Set-Cookie value was received
path - the path from which the Set-Cookie value was received
secure - true when the Set-Cookie value was received over secure conection
header - the Set-Cookie received from the server
Returns:
an array of Cookies parsed from the Set-Cookie value
Throws:
MalformedCookieException - if an exception occurs during parsing

parse

public Cookie[] parse(String host,
                      int port,
                      String path,
                      boolean secure,
                      Header header)
            throws MalformedCookieException
Parse the "Set-Cookie" Header into an array of Cookies.

The syntax for the Set-Cookie response header is:

 set-cookie      =    "Set-Cookie:" cookies
 cookies         =    1#cookie
 cookie          =    NAME "=" VALUE * (";" cookie-av)
 NAME            =    attr
 VALUE           =    value
 cookie-av       =    "Comment" "=" value
                 |    "Domain" "=" value
                 |    "Max-Age" "=" value
                 |    "Path" "=" value
                 |    "Secure"
                 |    "Version" "=" 1*DIGIT
 
Specified by:
parse in interface CookieSpec
Parameters:
host - the host from which the Set-Cookie header was received
port - the port from which the Set-Cookie header was received
path - the path from which the Set-Cookie header was received
secure - true when the Set-Cookie header was received over secure conection
header - the Set-Cookie received from the server
Returns:
an array of Cookies parsed from the "Set-Cookie" header
Throws:
MalformedCookieException - if an exception occurs during parsing

parseAttribute

public void parseAttribute(NameValuePair attribute,
                           Cookie cookie)
            throws MalformedCookieException
Parse the cookie attribute and update the corresponsing Cookie properties.
Specified by:
parseAttribute in interface CookieSpec
Parameters:
attribute - HeaderElement cookie attribute from the Set- Cookie
cookie - Cookie to be updated
Throws:
MalformedCookieException - if an exception occurs during parsing

pathMatch

public boolean pathMatch(String path,
                         String topmostPath)
Performs path-match as implemented in common browsers.
Specified by:
pathMatch in interface CookieSpec
Parameters:
path - The target path.
topmostPath - The cookie path attribute.
Returns:
true if the paths match

setValidDateFormats

public void setValidDateFormats(Collection datepatterns)
Specified by:
setValidDateFormats in interface CookieSpec

validate

public void validate(String host,
                     int port,
                     String path,
                     boolean secure,
                     Cookie cookie)
            throws MalformedCookieException
Performs most common Cookie validation
Specified by:
validate in interface CookieSpec
Parameters:
host - the host from which the Cookie was received
port - the port from which the Cookie was received
path - the path from which the Cookie was received
secure - true when the Cookie was received using a secure connection
cookie - The cookie to validate.
Throws:
MalformedCookieException - if an exception occurs during validation

Copyright (c) 1999-2005 - Apache Software Foundation