March 22, 2008

JSF und die Keksfabrik

Eine kurze Übersicht über die Behandlung von Cookies unter Java und JSF:

Erzeugen:
public void bakeCookie(FacesContext ctx) {
  Cookie cookie = new Cookie("tastyCookie", "mySecretCookieData");
  cookie.setMaxAge(604800); // Haltbarkeit in Sekunden

  HttpServletResponse response = (HttpServletResponse) ctx.getExternalContext().getResponse();
  response.addCookie(cookie);             
}
Die eigentlichen Daten sollten selbstverständlich verschlüsselt sein. Weiterhin sollte man in der Verwendung von Sonderzeichen Vorsicht walten lassen - diese könnten je nach Browser zu eigentümlichen Verhalten führen (richtig, genau der Browser).

Auslesen:
public boolean tasteCookie(FacesContext ctx) {
  Map cookieMap = ctx.getExternalContext().getRequestCookieMap();
  Cookie cookie = (Cookie)cookieMap.get("tastyCookie");
  if (cookie != null && cookie.getValue().length() > 0) {
     // enjoy cookie
     String val = cookie.getValue();
  }
}
Entsorgen:
public void eatCookie(FacesContext ctx) {
  Cookie cookie = new Cookie("tastyCookie");
  cookie.setMaxAge(0);

  HttpServletResponse response = (HttpServletResponse)ctx.getExternalContext().getResponse();
  response.addCookie(cookie);      
}

No comments:

Post a Comment