/*
 * Copyright 2012 The Netty Project
 *
 * The Netty Project licenses this file to you under the Apache License,
 * version 2.0 (the "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at:
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations
 * under the License.
 */

package io.vertx.ext.web;

import io.vertx.codegen.annotations.Fluent;
import io.vertx.codegen.annotations.GenIgnore;
import io.vertx.codegen.annotations.Nullable;
import io.vertx.codegen.annotations.VertxGen;
import io.vertx.ext.web.impl.CookieImpl;

Represents an HTTP Cookie.

All cookies must have a name and a value and can optionally have other fields set such as path, domain, etc.

(Derived from io.netty.handler.codec.http.Cookie)

/** * Represents an HTTP Cookie. * <p> * All cookies must have a name and a value and can optionally have other fields set such as path, domain, etc. * <p> * (Derived from io.netty.handler.codec.http.Cookie) */
@VertxGen public interface Cookie {
Create a new cookie
Params:
  • name – the name of the cookie
  • value – the cookie value
Returns:the cookie
/** * Create a new cookie * @param name the name of the cookie * @param value the cookie value * @return the cookie */
static Cookie cookie(String name, String value) { return new CookieImpl(name, value); }
Create a new cookie from a Netty cookie
Params:
  • nettyCookie – the Netty cookie
Returns:the cookie
/** * Create a new cookie from a Netty cookie * @param nettyCookie the Netty cookie * @return the cookie */
@GenIgnore static Cookie cookie(io.netty.handler.codec.http.cookie.Cookie nettyCookie) { return new CookieImpl(nettyCookie); }
Returns:the name of this cookie
/** * @return the name of this cookie */
String getName();
Returns:the value of this cookie
/** * @return the value of this cookie */
String getValue();
Sets the value of this cookie
Params:
  • value – The value to set
Returns:a reference to this, so the API can be used fluently
/** * Sets the value of this cookie * * @param value The value to set * @return a reference to this, so the API can be used fluently */
@Fluent Cookie setValue(String value);
Sets the domain of this cookie
Params:
  • domain – The domain to use
Returns:a reference to this, so the API can be used fluently
/** * Sets the domain of this cookie * * @param domain The domain to use * @return a reference to this, so the API can be used fluently */
@Fluent Cookie setDomain(@Nullable String domain);
Returns: the domain for the cookie
/** * @return the domain for the cookie */
@Nullable String getDomain();
Sets the path of this cookie.
Params:
  • path – The path to use for this cookie
Returns:a reference to this, so the API can be used fluently
/** * Sets the path of this cookie. * * @param path The path to use for this cookie * @return a reference to this, so the API can be used fluently */
@Fluent Cookie setPath(@Nullable String path);
Returns:the path for this cookie
/** * * @return the path for this cookie */
@Nullable String getPath();
Sets the maximum age of this cookie in seconds. If an age of 0 is specified, this cookie will be automatically removed by browser because it will expire immediately. If Long.MIN_VALUE is specified, this cookie will be removed when the browser is closed. If you don't set this the cookie will be a session cookie and be removed when the browser is closed.
Params:
  • maxAge – The maximum age of this cookie in seconds
/** * Sets the maximum age of this cookie in seconds. * If an age of {@code 0} is specified, this cookie will be * automatically removed by browser because it will expire immediately. * If {@link Long#MIN_VALUE} is specified, this cookie will be removed when the * browser is closed. * If you don't set this the cookie will be a session cookie and be removed when the browser is closed. * * @param maxAge The maximum age of this cookie in seconds */
@Fluent Cookie setMaxAge(long maxAge);
Sets the security getStatus of this cookie
Params:
  • secure – True if this cookie is to be secure, otherwise false
Returns:a reference to this, so the API can be used fluently
/** * Sets the security getStatus of this cookie * * @param secure True if this cookie is to be secure, otherwise false * @return a reference to this, so the API can be used fluently */
@Fluent Cookie setSecure(boolean secure);
Determines if this cookie is HTTP only. If set to true, this cookie cannot be accessed by a client side script. However, this works only if the browser supports it. For for information, please look here.
Params:
  • httpOnly – True if the cookie is HTTP only, otherwise false.
/** * Determines if this cookie is HTTP only. * If set to true, this cookie cannot be accessed by a client * side script. However, this works only if the browser supports it. * For for information, please look * <a href="http://www.owasp.org/index.php/HTTPOnly">here</a>. * * @param httpOnly True if the cookie is HTTP only, otherwise false. */
@Fluent Cookie setHttpOnly(boolean httpOnly);
Encode the cookie to a string. This is what is used in the Set-Cookie header
Returns: the encoded cookie
/** * Encode the cookie to a string. This is what is used in the Set-Cookie header * * @return the encoded cookie */
String encode();
Has the cookie been changed? Changed cookies will be saved out in the response and sent to the browser.
Returns:true if changed
/** * Has the cookie been changed? Changed cookies will be saved out in the response and sent to the browser. * * @return true if changed */
boolean isChanged();
Set the cookie as being changed. Changed will be true for a cookie just created, false by default if just read from the request
Params:
  • changed – true if changed
/** * Set the cookie as being changed. Changed will be true for a cookie just created, false by default if just * read from the request * * @param changed true if changed */
void setChanged(boolean changed);
Has this Cookie been sent from the User Agent (the browser)? or was created during the executing on the request.
Returns:true if the cookie comes from the User Agent.
/** * Has this Cookie been sent from the User Agent (the browser)? or was created during the executing on the request. * * @return true if the cookie comes from the User Agent. */
boolean isFromUserAgent(); }