53 lines
1.7 KiB
Java
53 lines
1.7 KiB
Java
package de.hsel.spm.baudas.web;
|
|
|
|
import org.jetbrains.annotations.NotNull;
|
|
|
|
import javax.servlet.RequestDispatcher;
|
|
import javax.servlet.ServletException;
|
|
import javax.servlet.annotation.WebServlet;
|
|
import javax.servlet.http.HttpServlet;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.servlet.http.HttpSession;
|
|
import java.io.IOException;
|
|
import java.io.PrintWriter;
|
|
import java.nio.file.Files;
|
|
import java.nio.file.Paths;
|
|
|
|
/**
|
|
* authenticates users.
|
|
*
|
|
* @author Edgar Schkrob
|
|
* @version 0.1
|
|
* @since 1.0
|
|
*/
|
|
|
|
@WebServlet("/login")
|
|
public class LoginServlet extends HttpServlet {
|
|
|
|
/**
|
|
* reads from HTTP POST parameter 'password' and compares it.
|
|
*
|
|
* @param request request object
|
|
* @param response response object
|
|
* @throws IOException failed to initialize print writer
|
|
*/
|
|
@Override
|
|
protected void doPost(@NotNull HttpServletRequest request, @NotNull HttpServletResponse response) throws ServletException, IOException {
|
|
String pw = Files.readString(Paths.get("password.txt"));
|
|
|
|
String password = request.getParameter("password");
|
|
if (pw.equals(password)) {
|
|
HttpSession newSession = request.getSession(true);
|
|
newSession.setAttribute("authentication", true);
|
|
newSession.setMaxInactiveInterval(5 * 60 * 60); //setting session to expire in 5 hours
|
|
response.sendRedirect("index.jsp");
|
|
} else {
|
|
RequestDispatcher rd = getServletContext().getRequestDispatcher("/login.jsp");
|
|
PrintWriter out = response.getWriter();
|
|
rd.include(request, response);
|
|
out.print("<script>$('#wrong_password').removeClass('hide')</script>");
|
|
}
|
|
}
|
|
}
|