org.springframework.web.util

## Class CookieGenerator

- java.lang.Object
- - org.springframework.web.util.CookieGenerator

- Direct Known Subclasses:
    CookieLocaleResolver, CookieThemeResolver

      public class CookieGenerator
      extends Object

  Helper class for cookie generation, carrying cookie descriptor settings as bean properties and being able to add and remove cookie to/from a given response.

  Can serve as base class for components that generate specific cookies, such as CookieLocaleResolver and CookieThemeResolver.

  Since:
    1.1.4
  Author:
    Juergen Hoeller
  See Also:
    `addCookie(javax.servlet.http.HttpServletResponse, java.lang.String)`, `removeCookie(javax.servlet.http.HttpServletResponse)`, `CookieLocaleResolver`, `CookieThemeResolver`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `DEFAULT_COOKIE_MAX_AGE` Deprecated. in favor of setting no max age value at all in such a case
    `static String` | `DEFAULT_COOKIE_PATH` Default path that cookies will be visible to: "/", i.e.
    `protected Log` | `logger`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CookieGenerator()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addCookie(HttpServletResponse response, String cookieValue)` Add a cookie with the given value to the response, using the cookie descriptor settings of this generator.
    `protected Cookie` | `createCookie(String cookieValue)` Create a cookie with the given value, using the cookie descriptor settings of this generator (except for "cookieMaxAge").
    `String` | `getCookieDomain()` Return the domain for cookies created by this generator, if any.
    `Integer` | `getCookieMaxAge()` Return the maximum age for cookies created by this generator.
    `String` | `getCookieName()` Return the given name for cookies created by this generator.
    `String` | `getCookiePath()` Return the path for cookies created by this generator.
    `boolean` | `isCookieHttpOnly()` Return whether the cookie is supposed to be marked with the "HttpOnly" attribute.
    `boolean` | `isCookieSecure()` Return whether the cookie should only be sent using a secure protocol, such as HTTPS (SSL).
    `void` | `removeCookie(HttpServletResponse response)` Remove the cookie that this generator describes from the response.
    `void` | `setCookieDomain(String cookieDomain)` Use the given domain for cookies created by this generator.
    `void` | `setCookieHttpOnly(boolean cookieHttpOnly)` Set whether the cookie is supposed to be marked with the "HttpOnly" attribute.
    `void` | `setCookieMaxAge(Integer cookieMaxAge)` Use the given maximum age (in seconds) for cookies created by this generator.
    `void` | `setCookieName(String cookieName)` Use the given name for cookies created by this generator.
    `void` | `setCookiePath(String cookiePath)` Use the given path for cookies created by this generator.
    `void` | `setCookieSecure(boolean cookieSecure)` Set whether the cookie should only be sent using a secure protocol, such as HTTPS (SSL).

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT_COOKIE_PATH

          public static final String DEFAULT_COOKIE_PATH

      Default path that cookies will be visible to: "/", i.e. the entire server.
      See Also:
        Constant Field Values

    - #### DEFAULT_COOKIE_MAX_AGE

          @Deprecated
          public static final int DEFAULT_COOKIE_MAX_AGE

      Deprecated. in favor of setting no max age value at all in such a case
      Default maximum age of cookies: maximum integer value, i.e. forever.
      See Also:
        Constant Field Values

    - #### logger

          protected final Log logger

  - ### Constructor Detail

    - #### CookieGenerator

          public CookieGenerator()

  - ### Method Detail

    - #### setCookieName

          public void setCookieName(String cookieName)

      Use the given name for cookies created by this generator.
      See Also:
        `Cookie.getName()`

    - #### getCookieName

          public String getCookieName()

      Return the given name for cookies created by this generator.

    - #### setCookieDomain

          public void setCookieDomain(String cookieDomain)

      Use the given domain for cookies created by this generator. The cookie is only visible to servers in this domain.
      See Also:
        `Cookie.setDomain(java.lang.String)`

    - #### getCookieDomain

          public String getCookieDomain()

      Return the domain for cookies created by this generator, if any.

    - #### setCookiePath

          public void setCookiePath(String cookiePath)

      Use the given path for cookies created by this generator. The cookie is only visible to URLs in this path and below.
      See Also:
        `Cookie.setPath(java.lang.String)`

    - #### getCookiePath

          public String getCookiePath()

      Return the path for cookies created by this generator.

    - #### setCookieMaxAge

          public void setCookieMaxAge(Integer cookieMaxAge)

      Use the given maximum age (in seconds) for cookies created by this generator. Useful special value: -1 ... not persistent, deleted when client shuts down
      See Also:
        `Cookie.setMaxAge(int)`

    - #### getCookieMaxAge

          public Integer getCookieMaxAge()

      Return the maximum age for cookies created by this generator.

    - #### setCookieSecure

          public void setCookieSecure(boolean cookieSecure)

      Set whether the cookie should only be sent using a secure protocol, such as HTTPS (SSL). This is an indication to the receiving browser, not processed by the HTTP server itself. Default is "false".
      See Also:
        `Cookie.setSecure(boolean)`

    - #### isCookieSecure

          public boolean isCookieSecure()

      Return whether the cookie should only be sent using a secure protocol, such as HTTPS (SSL).

    - #### setCookieHttpOnly

          public void setCookieHttpOnly(boolean cookieHttpOnly)

      Set whether the cookie is supposed to be marked with the "HttpOnly" attribute.

      Note that this feature is only available on Servlet 3.0 and higher.

      See Also:
        `Cookie.setHttpOnly(boolean)`

    - #### isCookieHttpOnly

          public boolean isCookieHttpOnly()

      Return whether the cookie is supposed to be marked with the "HttpOnly" attribute.

    - #### addCookie

          public void addCookie(HttpServletResponse response,
                       String cookieValue)

      Add a cookie with the given value to the response, using the cookie descriptor settings of this generator.

      Delegates to `createCookie(java.lang.String)` for cookie creation.

      Parameters:
        `response` - the HTTP response to add the cookie to
        `cookieValue` - the value of the cookie to add
      See Also:
        `setCookieName(java.lang.String)`, `setCookieDomain(java.lang.String)`, `setCookiePath(java.lang.String)`, `setCookieMaxAge(java.lang.Integer)`

    - #### removeCookie

          public void removeCookie(HttpServletResponse response)

      Remove the cookie that this generator describes from the response. Will generate a cookie with empty value and max age 0.

      Delegates to `createCookie(java.lang.String)` for cookie creation.

      Parameters:
        `response` - the HTTP response to remove the cookie from
      See Also:
        `setCookieName(java.lang.String)`, `setCookieDomain(java.lang.String)`, `setCookiePath(java.lang.String)`

    - #### createCookie

          protected Cookie createCookie(String cookieValue)

      Create a cookie with the given value, using the cookie descriptor settings of this generator (except for "cookieMaxAge").
      Parameters:
        `cookieValue` - the value of the cookie to crate
      Returns:
        the cookie
      See Also:
        `setCookieName(java.lang.String)`, `setCookieDomain(java.lang.String)`, `setCookiePath(java.lang.String)`