Class CookieManager

All Implemented Interfaces:
Component, DestructableComponent, InitializableComponent

public final class CookieManager extends AbstractInitializableComponent
A helper class for managing one or more cookies on behalf of a component.

This bean centralizes settings related to cookie creation and access, and is parameterized by name so that multiple cookies may be managed with common properties.

  • Field Details

    • cookiePath

      @Nullable private String cookiePath
      Path of cookie.
    • cookieDomain

      @Nullable private String cookieDomain
      Domain of cookie.
    • httpRequest

      @NonnullAfterInit private javax.servlet.http.HttpServletRequest httpRequest
      Servlet request to read from.
    • httpResponse

      @NonnullAfterInit private javax.servlet.http.HttpServletResponse httpResponse
      Servlet response to write to.
    • secure

      private boolean secure
      Is cookie secure?
    • httpOnly

      private boolean httpOnly
      Is cookie marked HttpOnly?
    • maxAge

      private int maxAge
      Maximum age in seconds, or -1 for session.
  • Constructor Details

    • CookieManager

      public CookieManager()
      Constructor.
  • Method Details

    • setCookiePath

      public void setCookiePath(@Nullable String path)
      Set the cookie path to use for session tracking.

      Defaults to the servlet context path.

      Parameters:
      path - cookie path to use, or null for the default
    • setCookieDomain

      public void setCookieDomain(@Nullable String domain)
      Set the cookie domain to use for session tracking.
      Parameters:
      domain - the cookie domain to use, or null for the default
    • setHttpServletRequest

      public void setHttpServletRequest(@Nonnull javax.servlet.http.HttpServletRequest request)
      Set the servlet request to read from.
      Parameters:
      request - servlet request
    • setHttpServletResponse

      public void setHttpServletResponse(@Nonnull javax.servlet.http.HttpServletResponse response)
      Set the servlet response to write to.
      Parameters:
      response - servlet response
    • setSecure

      public void setSecure(boolean flag)
      Set the SSL-only flag.
      Parameters:
      flag - flag to set
    • setHttpOnly

      public void setHttpOnly(boolean flag)
      Set the HttpOnly flag.
      Parameters:
      flag - flag to set
    • setMaxAge

      public void setMaxAge(int age)
      Maximum age in seconds, or -1 for per-session.
      Parameters:
      age - max age to set
    • doInitialize

      protected void doInitialize() throws ComponentInitializationException
      Performs the initialization of the component. This method is executed within the lock on the object being initialized. The default implementation of this method is a no-op.
      Overrides:
      doInitialize in class AbstractInitializableComponent
      Throws:
      ComponentInitializationException - thrown if there is a problem initializing the component
    • addCookie

      public void addCookie(@Nonnull @NotEmpty String name, @Nonnull @NotEmpty String value)
      Add a cookie with the specified name and value.
      Parameters:
      name - name of cookie
      value - value of cookie
    • unsetCookie

      public void unsetCookie(@Nonnull @NotEmpty String name)
      Unsets a cookie with the specified name.
      Parameters:
      name - name of cookie
    • cookieHasValue

      public boolean cookieHasValue(@Nonnull @NotEmpty String name, @Nonnull @NotEmpty String expectedValue)
      Check whether a cookie has a certain value.
      Parameters:
      name - name of cookie
      expectedValue - expected value of cookie
      Returns:
      true iff the cookie exists and has the expected value
    • getCookieValue

      @Nullable public String getCookieValue(@Nonnull @NotEmpty String name, @Nullable String defValue)
      Return the first matching cookie's value.
      Parameters:
      name - cookie name
      defValue - default value to return if the cookie isn't found
      Returns:
      cookie value
    • contextPathToCookiePath

      @Nonnull @NotEmpty private String contextPathToCookiePath()
      Turn the servlet context path into an appropriate cookie path.
      Returns:
      the cookie path