zallery/src/zall/page/LoginServlet.java

68 lines
2.3 KiB
Java
Raw Normal View History

2018-07-23 16:55:28 +02:00
package zall.page;
import zall.ZalleryServlet;
import zall.bean.User;
import zall.manager.AuthenticationManager;
2018-07-24 16:23:53 +02:00
import zall.util.UserMessage;
2018-07-23 16:55:28 +02:00
import zutil.db.DBConnection;
import zutil.log.LogUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.SQLException;
import java.util.logging.Logger;
@WebServlet(LoginServlet.URI)
2018-07-23 16:55:28 +02:00
public class LoginServlet extends ZalleryServlet {
private static Logger logger = LogUtil.getLogger();
2018-08-04 23:15:51 +02:00
public static final String URI = "/login";
2018-07-25 15:36:57 +02:00
private static final String JSP_FILE = "page_login.jsp";
2018-07-23 16:55:28 +02:00
2018-08-04 23:15:51 +02:00
private static final String FORM_EMAIL = "email";
private static final String FORM_PASSWORD = "password";
2018-07-23 16:55:28 +02:00
public void doGet(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws ServletException, IOException, SQLException {
// User already logged in?
User user = AuthenticationManager.getUserSession(request.getSession());
// Authenticate with cookies
if (user == null)
user = AuthenticationManager.authenticate(db, request, response);
// Forward user
if (user != null) {
logger.fine("User(" + user.getEmail() + ") already authenticated, forwarding to gallery.");
redirect(GalleryServlet.URI, request, response);
2018-08-04 23:15:51 +02:00
} else {
include(JSP_FILE, request, response);
}
2018-07-23 16:55:28 +02:00
}
public void doPost(HttpServletRequest request, HttpServletResponse response, DBConnection db) throws SQLException, ServletException, IOException {
2018-07-24 16:23:53 +02:00
UserMessage msgs = UserMessage.getUserMessage(request.getSession());
2018-07-23 16:55:28 +02:00
User user = AuthenticationManager.authenticate(db,
2018-08-04 23:15:51 +02:00
request.getParameter(FORM_EMAIL),
request.getParameter(FORM_PASSWORD),
request, response);
2018-07-23 16:55:28 +02:00
2018-07-24 16:23:53 +02:00
// Successful login
2018-07-23 16:55:28 +02:00
if (user != null) {
logger.fine("Authenticated user(" + user.getEmail() + ") successfully, forwarding to gallery.");
forward(GalleryServlet.URI, request, response);
2018-07-23 16:55:28 +02:00
}
// Failed login
else {
2018-07-24 16:23:53 +02:00
msgs.add(UserMessage.MessageType.ERROR, lang.getString("error.incorrect.user_or_pass"));
2018-07-23 16:55:28 +02:00
}
2018-07-25 15:36:57 +02:00
doGet(request, response, db);
2018-07-23 16:55:28 +02:00
}
}