37 lines
1.3 KiB
Java
37 lines
1.3 KiB
Java
package com.mzh.library.controller;
|
|
|
|
import com.mzh.library.entity.AuthenticatedUser;
|
|
import com.mzh.library.util.SessionAttributes;
|
|
|
|
import java.io.IOException;
|
|
import java.util.logging.Logger;
|
|
|
|
import javax.servlet.ServletException;
|
|
import javax.servlet.http.HttpServlet;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.servlet.http.HttpSession;
|
|
|
|
public class LogoutServlet extends HttpServlet {
|
|
private static final Logger LOGGER = Logger.getLogger(LogoutServlet.class.getName());
|
|
|
|
@Override
|
|
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
|
HttpSession session = request.getSession(false);
|
|
if (session != null) {
|
|
AuthenticatedUser user = currentUser(session);
|
|
if (user != null) {
|
|
LOGGER.info("Logout userId=" + user.getId() + " role=" + user.getRole().getCode());
|
|
}
|
|
session.invalidate();
|
|
}
|
|
|
|
response.sendRedirect(request.getContextPath() + "/login");
|
|
}
|
|
|
|
private AuthenticatedUser currentUser(HttpSession session) {
|
|
Object value = session.getAttribute(SessionAttributes.AUTHENTICATED_USER);
|
|
return value instanceof AuthenticatedUser ? (AuthenticatedUser) value : null;
|
|
}
|
|
}
|