You are on page 1of 2

import jakarta.servlet.annotation.

WebListener;
import jakarta.servlet.http.HttpSessionEvent;
import jakarta.servlet.http.HttpSessionListener;

@WebListener
public class SessionTimeoutListener implements HttpSessionListener {

@Override
public void sessionCreated(HttpSessionEvent event) {
event.getSession().setMaxInactiveInterval(30 * 60); // 30 menit
}

@Override
public void sessionDestroyed(HttpSessionEvent event) {
// Aksi yang dijalankan saat sesi dihancurkan (misalnya, logout)
// ...
}
}

-------------------------------------------------------------
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServletResponse;

public class CookieUtil {

public static void setLoginTokenCookie(HttpServletResponse response, String


token) {
Cookie cookie = new Cookie("loginToken", token);
cookie.setPath("/");
cookie.setMaxAge(24 * 60 * 60); // Cookie berlaku selama 24 jam
response.addCookie(cookie);
}

public static void deleteLoginTokenCookie(HttpServletResponse response) {


Cookie cookie = new Cookie("loginToken", "");
cookie.setPath("/");
cookie.setMaxAge(0); // Hapus cookie
response.addCookie(cookie);
}
}

-------------------------------------------------------------
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.Serializable;
import java.util.UUID;

@Named
@RequestScoped
public class LoginBean implements Serializable {
private String username;
private String password;
private boolean loggedIn;

public String getUsername() {


return username;
}

public void setUsername(String username) {


this.username = username;
}

public String getPassword() {


return password;
}

public void setPassword(String password) {


this.password = password;
}

public boolean isLoggedIn() {


return loggedIn;
}

public String login(HttpServletRequest request, HttpServletResponse response) {


// Cek validasi pengguna
if (username.equals("admin") && password.equals("admin123")) {
loggedIn = true;
String token = UUID.randomUUID().toString();
CookieUtil.setLoginTokenCookie(response, token);
return "home.xhtml?faces-redirect=true";
} else {
loggedIn = false;
return null;
}
}

public String logout(HttpServletRequest request, HttpServletResponse response)


{
// Logout pengguna
loggedIn = false;
CookieUtil.deleteLoginTokenCookie(response);
return "login.xhtml?faces-redirect=true";
}
}

You might also like