## org.apache.http.impl.cookie
Class PublicSuffixFilter

    java.lang.Object
      org.apache.http.impl.cookie.PublicSuffixFilter

All Implemented Interfaces:
  CookieAttributeHandler

    public class PublicSuffixFilter

extends Object
implements CookieAttributeHandler

Wraps a CookieAttributeHandler and leverages its match method to never match a suffix from a black list. May be used to provide additional security for cross-site attack types by preventing cookies from apparent domains that are not publicly available. An uptodate list of suffixes can be obtained from publicsuffix.org

Since:
  4.0

Constructor Summary
`PublicSuffixFilter(CookieAttributeHandler wrapped)`

Method Summary
`boolean` `match(Cookie cookie, CookieOrigin origin)` Never matches if the cookie's domain is from the blacklist.
`void` `parse(SetCookie cookie, String value)` Parse the given cookie attribute value and update the corresponding `Cookie` property.
`void` `setExceptions(Collection<String> exceptions)` Sets the exceptions from the blacklist.
`void` `setPublicSuffixes(Collection<String> suffixes)` Sets the suffix blacklist patterns.
`void` `validate(Cookie cookie, CookieOrigin origin)` Peforms cookie validation for the given attribute value.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### PublicSuffixFilter

    public PublicSuffixFilter(CookieAttributeHandler wrapped)

Method Detail

### setPublicSuffixes

    public void setPublicSuffixes(Collection<String> suffixes)

  Sets the suffix blacklist patterns. A pattern can be "com", "*.jp" TODO add support for patterns like "lib.*.us"

  Parameters:
    `suffixes` -

### setExceptions

    public void setExceptions(Collection<String> exceptions)

  Sets the exceptions from the blacklist. Exceptions can not be patterns. TODO add support for patterns

  Parameters:
    `exceptions` -

### match

    public boolean match(Cookie cookie,
                         CookieOrigin origin)

  Never matches if the cookie's domain is from the blacklist.

  Specified by:
    `match` in interface `CookieAttributeHandler`
  Parameters:
    `cookie` - `Cookie` to match
    `origin` - the cookie source to match against
  Returns:
    `true` if the match is successful; `false` otherwise

### parse

    public void parse(SetCookie cookie,
                      String value)
               throws MalformedCookieException

  Description copied from interface: `CookieAttributeHandler`
  Parse the given cookie attribute value and update the corresponding `Cookie` property.

  Specified by:
    `parse` in interface `CookieAttributeHandler`
  Parameters:
    `cookie` - `Cookie` to be updated
    `value` - cookie attribute value from the cookie response header
  Throws:
    `MalformedCookieException`

### validate

    public void validate(Cookie cookie,
                         CookieOrigin origin)
                  throws MalformedCookieException

  Description copied from interface: `CookieAttributeHandler`
  Peforms cookie validation for the given attribute value.

  Specified by:
    `validate` in interface `CookieAttributeHandler`
  Parameters:
    `cookie` - `Cookie` to validate
    `origin` - the cookie source to validate against
  Throws:
    `MalformedCookieException` - if cookie validation fails for this attribute

Copyright © 1999-2013 The Apache Software Foundation. All Rights Reserved.