01: /**
02: * Copyright (c) 2003-2007, David A. Czarnecki
03: * All rights reserved.
04: *
05: * Redistribution and use in source and binary forms, with or without
06: * modification, are permitted provided that the following conditions are met:
07: *
08: * Redistributions of source code must retain the above copyright notice, this list of conditions and the
09: * following disclaimer.
10: * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the
11: * following disclaimer in the documentation and/or other materials provided with the distribution.
12: * Neither the name of "David A. Czarnecki" and "blojsom" nor the names of its contributors may be used to
13: * endorse or promote products derived from this software without specific prior written permission.
14: * Products derived from this software may not be called "blojsom", nor may "blojsom" appear in their name,
15: * without prior written permission of David A. Czarnecki.
16: *
17: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
18: * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
19: * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
20: * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
21: * EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
22: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23: * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24: * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
26: * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
27: * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28: * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
29: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30: */package org.blojsom.util;
31:
32: import javax.servlet.http.Cookie;
33: import javax.servlet.http.HttpServletRequest;
34: import javax.servlet.http.HttpServletResponse;
35:
36: /**
37: * CookieUtils
38: *
39: * @author David Czarnecki
40: * @version $Id: CookieUtils.java,v 1.4 2007/01/17 02:35:18 czarneckid Exp $
41: * @since blojsom 3.0
42: */
43: public class CookieUtils {
44:
45: /**
46: * Return a cookie given a particular key
47: *
48: * @param httpServletRequest Request
49: * @param cookieKey Cookie key
50: * @return <code>Cookie</code> of the requested key or <code>null</code> if no cookie
51: * under that name is found
52: */
53: public static Cookie getCookie(
54: HttpServletRequest httpServletRequest, String cookieKey) {
55: Cookie[] cookies = httpServletRequest.getCookies();
56: if (cookies == null) {
57: return null;
58: }
59:
60: for (int i = 0; i < cookies.length; i++) {
61: Cookie cookie = cookies[i];
62: if (cookie.getName().equals(cookieKey)) {
63: return cookie;
64: }
65: }
66:
67: return null;
68: }
69:
70: /**
71: * Add a cookie with a key and value to the response
72: *
73: * @param httpServletResponse Response
74: * @param cookieExpiration Cookie expiration (in seconds)
75: * @param cookieKey Cookie key
76: * @param cookieValue Cookie value
77: */
78: public static void addCookie(
79: HttpServletResponse httpServletResponse,
80: int cookieExpiration, String cookieKey, String cookieValue) {
81: Cookie cookie = new Cookie(cookieKey, cookieValue);
82: cookie.setMaxAge(cookieExpiration);
83: httpServletResponse.addCookie(cookie);
84: }
85: }
|