summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Suhren <suhren.stefan@fh-swf.de>2015-10-25 18:24:33 +0100
committerStefan Suhren <suhren.stefan@fh-swf.de>2015-10-25 18:24:33 +0100
commite48415bce9429daf7bd84d546c4b9d013f11f576 (patch)
tree29597e5e8dbbc02f6585109a18a73fa2a38f7b84
parent37e0375e9cfefed8f2aab9d2466df0d4ff20a434 (diff)
downloadFIT-e48415bce9429daf7bd84d546c4b9d013f11f576.tar.gz
FIT-e48415bce9429daf7bd84d546c4b9d013f11f576.zip
Implement basic login form
-rw-r--r--WebContent/LoginForm.jsp16
-rw-r--r--src/de/fhswf/in/inf/fit/aufgabe3/LoginServlet.java84
2 files changed, 100 insertions, 0 deletions
diff --git a/WebContent/LoginForm.jsp b/WebContent/LoginForm.jsp
new file mode 100644
index 0000000..ec3f7a9
--- /dev/null
+++ b/WebContent/LoginForm.jsp
@@ -0,0 +1,16 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+ pageEncoding="UTF-8"%>
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Login</title>
+</head>
+<body>
+ <form action="LoginServlet" method="post">
+ <label for="username">Username:</label><input type="text" name="username" id="username"><br>
+ <label for="password">Password:</label><input type="text" name="password" id="password"><br>
+ <input type="submit"><input type="reset">
+ </form>
+</body>
+</html> \ No newline at end of file
diff --git a/src/de/fhswf/in/inf/fit/aufgabe3/LoginServlet.java b/src/de/fhswf/in/inf/fit/aufgabe3/LoginServlet.java
new file mode 100644
index 0000000..158dc49
--- /dev/null
+++ b/src/de/fhswf/in/inf/fit/aufgabe3/LoginServlet.java
@@ -0,0 +1,84 @@
+package de.fhswf.in.inf.fit.aufgabe3;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebInitParam;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * Servlet implementation class LoginServlet
+ */
+@WebServlet(urlPatterns = { "/LoginServlet" }, initParams = {
+ @WebInitParam(name = "username", value = "admin"),
+ @WebInitParam(name = "password", value = "12345") })
+public class LoginServlet extends HttpServlet
+{
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * @see HttpServlet#HttpServlet()
+ */
+ public LoginServlet()
+ {
+ super();
+ }
+
+ /**
+ * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
+ * response)
+ */
+ protected void doGet(HttpServletRequest request,
+ HttpServletResponse response) throws ServletException, IOException
+ {
+ response.sendRedirect("LoginForm.jsp");
+ }
+
+ /**
+ * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
+ * response)
+ */
+ protected void doPost(HttpServletRequest request,
+ HttpServletResponse response) throws ServletException, IOException
+ {
+ String validUsername = getInitParameter("username");
+ String validPassword = getInitParameter("password");
+
+ String requestUsername = request.getParameter("username");
+ String requestPassword = request.getParameter("password");
+
+ if (requestUsername == null || requestPassword == null)
+ {
+ doGet(request, response);
+ }
+
+ PrintWriter pw = response.getWriter();
+
+ pw.println("<!DOCTYPE html>");
+ pw.println("<html>");
+ pw.println("<head>");
+ pw.println("<meta charset=\"utf-8\" />");
+ pw.println("<title>Login Answer</title>");
+ pw.println("</head>");
+ pw.println("<body>");
+
+ // This is very insecure and can be exploited via timing attacks
+ if (requestUsername.equals(validUsername)
+ && requestPassword.equals(validPassword))
+ {
+ pw.println("<h1>Success</h1>");
+ }
+ else
+ {
+ pw.println("<h1>Failed</h1>");
+ pw.println("<a href=\"LoginForm.jsp\">Retry</a>");
+ }
+
+ pw.println("</body>");
+ pw.println("</html>");
+ }
+}