java.lang.Object
edu.internet2.middleware.grouperClientExt.org.apache.commons.httpclient.cookie.CookieSpecBase
All Implemented Interfaces:
CookieSpec
Direct Known Subclasses:
NetscapeDraftSpec, RFC2109Spec, RFC2965Spec

public class CookieSpecBase extends Object implements CookieSpec
Cookie management functions shared by all specification.
Since:
2.0
  • Field Details

    • LOG

      protected static final Log LOG
      Log object
  • Constructor Details

    • CookieSpecBase

      public CookieSpecBase()
      Default constructor
  • Method Details

    • 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
      See Also:
    • 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
      See Also:
    • 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
    • getValidDateFormats

      public Collection getValidDateFormats()
      Description copied from interface: CookieSpec
      Returns the Collection of date patterns used for parsing. The String patterns are compatible with the SimpleDateFormat.
      Specified by:
      getValidDateFormats in interface CookieSpec
      Returns:
      collection of date patterns
    • setValidDateFormats

      public void setValidDateFormats(Collection datepatterns)
      Description copied from interface: CookieSpec
      Sets the Collection of date patterns used for parsing. The String patterns must be compatible with SimpleDateFormat.
      Specified by:
      setValidDateFormats in interface CookieSpec
      Parameters:
      datepatterns - collection of date patterns
    • 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
    • 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
    • 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.
    • 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
    • match

      public Cookie[] match(String host, int port, String path, boolean secure, Cookie[] 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
      cookies - an array of Cookies to be matched
      Returns:
      an array of Cookies matching the criterium
    • 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.
    • 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.
      Throws:
      IllegalArgumentException - if an input parameter is illegal
    • 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.
    • 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.