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 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

    All Methods Instance Methods Concrete 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

    - #### logger

          protected final Log logger

  - ### Constructor Detail

    - #### CookieGenerator

          public CookieGenerator()

  - ### Method Detail

    - #### setCookieName

          public void setCookieName(@Nullable
                                    String cookieName)

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

    - #### getCookieName

          @Nullable
          public String getCookieName()

      Return the given name for cookies created by this generator.

    - #### setCookieDomain

          public void setCookieDomain(@Nullable
                                      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

          @Nullable
          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(@Nullable
                                      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.

      Default is no specific maximum age at all, using the Servlet container's default.

      See Also:
        `Cookie.setMaxAge(int)`

    - #### getCookieMaxAge

          @Nullable
          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.

      Default is "false".

      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)`