javax.servlet.http.Cookie.setMaxAge
λ©μλ νΈμΆμ μΈλΆμ μ
λ ₯μ΄ μΏ ν€μ μ ν¨ μν μ€μ μ κ·Έλλ‘ μ¬μ©λμ΄ νλ‘κ·Έλ¨μ μ·¨μ½μ μ΄ μΌκΈ°λλ€.
public void makeCookie(ServletRequest request) {
String maxAge = request.getParameter("maxAge");
if (maxAge.matches("[0-9]+")) {
String sessionID = request.getParameter("sessionID");
if (sessionID.matches("[A-Z=0-9a-z]+")) {
Cookie c = new Cookie("sessionID", sessionID);
// μΈλΆ μ
λ ₯μ΄ μΏ ν€ μ ν¨μν μ€μ μ κ·Έλλ‘ μ¬μ©λ¨!
c.setMaxAge(Integer.parseInt(maxAge));
}
}
}
μ¬μ©μκ° μμ²ν κ°μΌλ‘ μΏ ν€μ μ ν¨ κΈ°κ°μ μ€μ νκΈ° μ μ μ¬μ©μ μμ²μ κ²μ¦νλ λ‘μ§μ μμ±νμ¬ λ©μλ νΈμΆ μ μ νΈμΆνλ€.
public void makeCookie(ServletRequest request) {
String maxAge = request.getParameter("maxAge");
if (maxAge == null || "".equals(maxAge)) return;
// 무기νμ κΈ°ν μ€μ λ°©μ§
if (maxAge.matches("[0-9]+")) {
String sessionID = request.getParameter("sessionID");
if (maxAge == null || "".equals(maxAge)) return;
// 무기ν κΈ°ν μ€μ λ°©μ§
if (sessionID.matches("[A-Z=0-9a-z]+")) {
Cookie c = new Cookie("sessionID", sessionID);
int t = Integer.parseInt(maxAge);
if (t > 3600) { t = 3600; }
// 3600μ΄ μ΄κ³Όνλ©΄ 3600μ΄λ‘ μ€μ
c.setMaxAge(t);
}
}
}
μ μ½λμμλ μμ μ½λμ λ¬λ¦¬ 1. 무기νμΌ κ²½μ°μλ κ·Έλ₯ returnμ ν΄ μ€λ€κ±°λ, 2. μΌμ κΈ°κ° μ΄μ(μ μ½λμμλ 3600μ΄)μΌ κ²½μ°μλ μμ°μ€λ½κ² μ¬μ©μ μ§μ μ΅λκ°μΌλ‘ λ°κΎΈμ΄ μ£Όλ©° μ·¨μ½μ μ μ κ±°νλ€.
javax.servlet.http.Cookie.setMaxAge
λ©μλ νΈμΆμ μΏ ν€μ μ ν¨ κΈ°κ° μ€μ μ μμ«κ°μΌλ‘ μ¬μ©νμ¬ νλ‘κ·Έλ¨μ μ·¨μ½μ μ μΌκΈ°ν¨.
...
Cookie idCookie = new Cookie("id", userId);
Cookie passwordCookie = new Cookie("password", password);
idCookie.setMaxAge(60*60); // λλνκ² μΏ ν€ μ§μ μκ° μ€μ
passwordCookie.setMaxAge(60*60);
...
setMaxAgeκ°μ μμ
λ‘ μ€μ νλ©΄ λΈλΌμ°μ κ° λ μλ λμμλ§ μλνλ€.
μ΄λ₯Ό μ΄μ©νμ¬, λ‘κ·Έμμ μ΄μΈμ μ΄λ€ νλμ ν΄λ μμλ‘ μ€μ λκ² νμλ€.
λ‘κ·Έμμ μμλ μ¦μ μΏ ν€κ° μμ λλ€.
...
if (command.equals(LOGIN_CMD)) {
...
Cookie idCookie = new Cookie("id", userId);
Cookie passwordCookie = new Cookie("password", password);
idCookie.setMaxAge(-60 * 2); // λλνκ² μΏ ν€ μ§μ μκ° μ€μ
passwordCookie.setMaxAge(-60 * 2);
}
...
if (command.equals(LOGOUT_CMD)) {
...
idCookie.setMaxAge(0); // λ‘κ·Έμμ μ μΏ ν€ λ°λ‘ μμ
passwordCookie.setMaxAge(0);
}
...
if (command.equals(OTHER_ACTION_CMD)) {
...
idCookie.setMaxAge(-60 * 2); // μ¬μ©μκ° κ³μ μ¬μ©ν΄μΌλ§ μΏ ν€ κ°±μ λ¨
passwordCookie.setMaxAge(-60 * 2);
}