Improved Cookie management.
This commit is contained in:
parent
1e5127a009
commit
143b983f19
1 changed files with 176 additions and 0 deletions
176
src/fr/devinsy/kiss4web/CookieHelper.java
Normal file
176
src/fr/devinsy/kiss4web/CookieHelper.java
Normal file
|
@ -0,0 +1,176 @@
|
|||
package fr.devinsy.kiss4web;
|
||||
|
||||
import javax.servlet.http.Cookie;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public class CookieHelper
|
||||
{
|
||||
static protected org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger (CookieHelper.class);
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
static public Cookie buildCookie (String name, String value, int duration, boolean isSecure)
|
||||
{
|
||||
Cookie result;
|
||||
|
||||
result = new Cookie (name, value);
|
||||
result.setMaxAge (duration);
|
||||
result.setPath ("/");
|
||||
result.setSecure (isSecure);
|
||||
|
||||
//
|
||||
return (result);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
static public Cookie buildCookie (String name, String value, int duration)
|
||||
{
|
||||
Cookie result;
|
||||
|
||||
result = buildCookie(name, value, duration, false);
|
||||
|
||||
//
|
||||
return (result);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
static public Cookie getCookie (Cookie[] cookies, String key)
|
||||
{
|
||||
Cookie result = null;
|
||||
|
||||
if (cookies == null)
|
||||
{
|
||||
result = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
boolean ended = false;
|
||||
int cookieCounter = 0;
|
||||
while (!ended)
|
||||
{
|
||||
if (cookieCounter < cookies.length)
|
||||
{
|
||||
if (key.equals (cookies[cookieCounter].getName ()))
|
||||
{
|
||||
ended = true;
|
||||
result = cookies[cookieCounter];
|
||||
}
|
||||
else
|
||||
{
|
||||
cookieCounter += 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ended = true;
|
||||
result = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
return (result);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
static public Cookie getCookie (HttpServletRequest request, String key)
|
||||
{
|
||||
Cookie result = null;
|
||||
|
||||
result = getCookie(request.getCookies (), key);
|
||||
|
||||
//
|
||||
return(result);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
static public Object getCookieValue (Cookie[] cookies, String key)
|
||||
{
|
||||
Object result;
|
||||
|
||||
Cookie cookie = getCookie(cookies, key);
|
||||
|
||||
if (cookie == null)
|
||||
{
|
||||
result = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = cookie.getValue();
|
||||
}
|
||||
|
||||
//
|
||||
return(result);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
static public Object getCookieValue (HttpServletRequest request, String key)
|
||||
{
|
||||
Object result;
|
||||
|
||||
result = getCookieValue (request.getCookies (), key);
|
||||
|
||||
//
|
||||
return(result);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
static public boolean exists(HttpServletRequest request, String key)
|
||||
{
|
||||
boolean result;
|
||||
|
||||
if (getCookieValue(request, key) == null)
|
||||
{
|
||||
result = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = true;
|
||||
}
|
||||
|
||||
//
|
||||
return(result);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
static public void set (HttpServletResponse response, String name, String value, int duration)
|
||||
{
|
||||
response.addCookie (buildCookie(name, value, duration));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
static public void reset (HttpServletResponse response, String key)
|
||||
{
|
||||
response.addCookie(buildCookie(key, "", 0));
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue