All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sun.grizzly.http.servlet.CookieWrapper Maven / Gradle / Ivy

There is a newer version: 2.0.0-M3
Show newest version
/*
 * 
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 * 
 * Copyright 2007-2008 Sun Microsystems, Inc. All rights reserved.
 * 
 * The contents of this file are subject to the terms of either the GNU
 * General Public License Version 2 only ("GPL") or the Common Development
 * and Distribution License("CDDL") (collectively, the "License").  You
 * may not use this file except in compliance with the License. You can obtain
 * a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
 * or glassfish/bootstrap/legal/LICENSE.txt.  See the License for the specific
 * language governing permissions and limitations under the License.
 * 
 * When distributing the software, include this License Header Notice in each
 * file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
 * Sun designates this particular file as subject to the "Classpath" exception
 * as provided by Sun in the GPL Version 2 section of the License file that
 * accompanied this code.  If applicable, add the following below the License
 * Header, with the fields enclosed by brackets [] replaced by your own
 * identifying information: "Portions Copyrighted [year]
 * [name of copyright owner]"
 * 
 * Contributor(s):
 * 
 * If you wish your version of this file to be governed by only the CDDL or
 * only the GPL Version 2, indicate your decision by adding "[Contributor]
 * elects to include this software in this distribution under the [CDDL or GPL
 * Version 2] license."  If you don't indicate a single choice of license, a
 * recipient has the option to distribute your version of this file under
 * either the CDDL, the GPL Version 2 or to extend the choice of license to
 * its licensees as provided above.  However, if you add GPL Version 2 code
 * and therefore, elected the GPL Version 2 license, then the option applies
 * only if the new code is made subject to such option by the copyright
 * holder.
 *
 */



package com.sun.grizzly.http.servlet;

import com.sun.grizzly.util.http.Cookie;

/**
 *
 * @author jfarcand
 */
public class CookieWrapper extends Cookie {
    /**
     * Constructs a cookie with a specified name and value.
     *
     * 

The name must conform to RFC 2109. That means it can contain * only ASCII alphanumeric characters and cannot contain commas, * semicolons, or white space or begin with a $ character. The cookie's * name cannot be changed after creation. * *

The value can be anything the server chooses to send. Its * value is probably of interest only to the server. The cookie's * value can be changed after creation with the * setValue method. * *

By default, cookies are created according to the Netscape * cookie specification. The version can be changed with the * setVersion method. * * * @param name a String specifying the name of the cookie * * @param value a String specifying the value of the cookie * * @throws IllegalArgumentException if the cookie name contains illegal characters * (for example, a comma, space, or semicolon) * or it is one of the tokens reserved for use * by the cookie protocol * @see #setValue * @see #setVersion * */ public CookieWrapper(String name, String value) { super(name,value); } private javax.servlet.http.Cookie wrappedCookie = null; /** * * Specifies a comment that describes a cookie's purpose. * The comment is useful if the browser presents the cookie * to the user. Comments * are not supported by Netscape Version 0 cookies. * * @param purpose a String specifying the comment * to display to the user * * @see #getComment * */ @Override public void setComment(String purpose) { wrappedCookie.setComment(purpose); } /** * Returns the comment describing the purpose of this cookie, or * null if the cookie has no comment. * * @return a String containing the comment, * or null if none * * @see #setComment * */ @Override public String getComment() { return wrappedCookie.getComment(); } /** * * Specifies the domain within which this cookie should be presented. * *

The form of the domain name is specified by RFC 2109. A domain * name begins with a dot (.foo.com) and means that * the cookie is visible to servers in a specified Domain Name System * (DNS) zone (for example, www.foo.com, but not * a.b.foo.com). By default, cookies are only returned * to the server that sent them. * * * @param pattern a String containing the domain name * within which this cookie is visible; * form is according to RFC 2109 * * @see #getDomain * */ @Override public void setDomain(String pattern) { wrappedCookie.setDomain(pattern); } /** * Returns the domain name set for this cookie. The form of * the domain name is set by RFC 2109. * * @return a String containing the domain name * * @see #setDomain * */ @Override public String getDomain() { return wrappedCookie.getDomain(); } /** * Sets the maximum age of the cookie in seconds. * *

A positive value indicates that the cookie will expire * after that many seconds have passed. Note that the value is * the maximum age when the cookie will expire, not the cookie's * current age. * *

A negative value means * that the cookie is not stored persistently and will be deleted * when the Web browser exits. A zero value causes the cookie * to be deleted. * * @param expiry an integer specifying the maximum age of the * cookie in seconds; if negative, means * the cookie is not stored; if zero, deletes * the cookie * * * @see #getMaxAge * */ @Override public void setMaxAge(int expiry) { wrappedCookie.setMaxAge(expiry); } /** * Returns the maximum age of the cookie, specified in seconds, * By default, -1 indicating the cookie will persist * until browser shutdown. * * * @return an integer specifying the maximum age of the * cookie in seconds; if negative, means * the cookie persists until browser shutdown * * * @see #setMaxAge * */ @Override public int getMaxAge() { return wrappedCookie.getMaxAge(); } /** * Specifies a path for the cookie * to which the client should return the cookie. * *

The cookie is visible to all the pages in the directory * you specify, and all the pages in that directory's subdirectories. * A cookie's path must include the servlet that set the cookie, * for example, /catalog, which makes the cookie * visible to all directories on the server under /catalog. * *

Consult RFC 2109 (available on the Internet) for more * information on setting path names for cookies. * * * @param uri a String specifying a path * * * @see #getPath * */ @Override public void setPath(String uri) { wrappedCookie.setPath(uri); } /** * Returns the path on the server * to which the browser returns this cookie. The * cookie is visible to all subpaths on the server. * * * @return a String specifying a path that contains * a servlet name, for example, /catalog * * @see #setPath * */ @Override public String getPath() { return wrappedCookie.getPath(); } /** * Indicates to the browser whether the cookie should only be sent * using a secure protocol, such as HTTPS or SSL. * *

The default value is false. * * @param flag if true, sends the cookie from the browser * to the server only when using a secure protocol; * if false, sent on any protocol * * @see #getSecure * */ @Override public void setSecure(boolean flag) { wrappedCookie.setSecure(flag); } /** * Returns true if the browser is sending cookies * only over a secure protocol, or false if the * browser can send cookies using any protocol. * * @return true if the browser uses a secure protocol; * otherwise, true * * @see #setSecure * */ @Override public boolean getSecure() { return wrappedCookie.getSecure(); } /** * Returns the name of the cookie. The name cannot be changed after * creation. * * @return a String specifying the cookie's name * */ @Override public String getName() { return wrappedCookie.getName(); } /** * * Assigns a new value to a cookie after the cookie is created. * If you use a binary value, you may want to use BASE64 encoding. * *

With Version 0 cookies, values should not contain white * space, brackets, parentheses, equals signs, commas, * double quotes, slashes, question marks, at signs, colons, * and semicolons. Empty values may not behave the same way * on all browsers. * * @param newValue a String specifying the new value * * * @see #getValue * @see Cookie * */ @Override public void setValue(String newValue) { wrappedCookie.setValue(newValue); } /** * Returns the value of the cookie. * * @return a String containing the cookie's * present value * * @see #setValue * @see Cookie * */ @Override public String getValue() { return wrappedCookie.getValue(); } /** * Returns the version of the protocol this cookie complies * with. Version 1 complies with RFC 2109, * and version 0 complies with the original * cookie specification drafted by Netscape. Cookies provided * by a browser use and identify the browser's cookie version. * * * @return 0 if the cookie complies with the * original Netscape specification; 1 * if the cookie complies with RFC 2109 * * @see #setVersion * */ @Override public int getVersion() { return wrappedCookie.getVersion(); } /** * Sets the version of the cookie protocol this cookie complies * with. Version 0 complies with the original Netscape cookie * specification. Version 1 complies with RFC 2109. * *

Since RFC 2109 is still somewhat new, consider * version 1 as experimental; do not use it yet on production sites. * * * @param v 0 if the cookie should comply with * the original Netscape specification; * 1 if the cookie should comply with RFC 2109 * * @see #getVersion * */ @Override public void setVersion(int v) { wrappedCookie.setVersion(v); } /** * * Overrides the standard java.lang.Object.clone * method to return a copy of this cookie. * * */ @Override public Object clone() { return wrappedCookie.clone(); } public javax.servlet.http.Cookie getWrappedCookie() { return wrappedCookie; } public void setWrappedCookie(javax.servlet.http.Cookie wrappedCookie) { this.wrappedCookie = wrappedCookie; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy