]> git.argeo.org Git - lgpl/argeo-commons.git/blob - ArgeoRememberMeServices.java
e71b86e1afbd0298f98331604bbe0f7f053d4bf6
[lgpl/argeo-commons.git] / ArgeoRememberMeServices.java
1 package org.argeo.security.mvc;
2
3 import javax.servlet.http.Cookie;
4 import javax.servlet.http.HttpServletRequest;
5 import javax.servlet.http.HttpServletResponse;
6
7 import org.springframework.security.ui.rememberme.TokenBasedRememberMeServices;
8
9 public class ArgeoRememberMeServices extends TokenBasedRememberMeServices {
10 public final static String DEFAULT_COOKIE_NAME = "ARGEO_SECURITY";
11
12 public ArgeoRememberMeServices() {
13 setCookieName(DEFAULT_COOKIE_NAME);
14 }
15
16 /**
17 * Sets a "cancel cookie" (with maxAge = 0) on the response to disable
18 * persistent logins.
19 *
20 * @param request
21 * @param response
22 */
23 protected void cancelCookie(HttpServletRequest request,
24 HttpServletResponse response) {
25 Cookie cookie = new Cookie(getCookieName(), null);
26 cookie.setMaxAge(0);
27 cookie.setPath("/");
28
29 response.addCookie(cookie);
30 }
31
32 /**
33 * Sets the cookie on the response
34 *
35 * @param tokens
36 * the tokens which will be encoded to make the cookie value.
37 * @param maxAge
38 * the value passed to {@link Cookie#setMaxAge(int)}
39 * @param request
40 * the request
41 * @param response
42 * the response to add the cookie to.
43 */
44 protected void setCookie(String[] tokens, int maxAge,
45 HttpServletRequest request, HttpServletResponse response) {
46 String cookieValue = encodeCookie(tokens);
47 Cookie cookie = new Cookie(getCookieName(), cookieValue);
48 cookie.setMaxAge(maxAge);
49 cookie.setPath("/");
50 response.addCookie(cookie);
51 }
52
53 }