Skip to content
Snippets Groups Projects
Commit f0724b7b authored by Julian Dehne's avatar Julian Dehne
Browse files

refactor: eliminated servlets (new tech for course not necessary)

refactor: used jersey seeOther method for redirect instead
parent ef6bba53
No related branches found
No related tags found
No related merge requests found
...@@ -82,6 +82,9 @@ public class ManagementImpl implements Management { ...@@ -82,6 +82,9 @@ public class ManagementImpl implements Management {
connect.issueSelectStatement(mysqlRequest, user.getEmail(), user.getPassword()); connect.issueSelectStatement(mysqlRequest, user.getEmail(), user.getPassword());
result = vereinfachtesResultSet.next(); result = vereinfachtesResultSet.next();
connect.close(); connect.close();
if (result == null) {
return false;
}
return result; return result;
} }
...@@ -121,7 +124,12 @@ public class ManagementImpl implements Management { ...@@ -121,7 +124,12 @@ public class ManagementImpl implements Management {
VereinfachtesResultSet vereinfachtesResultSet = VereinfachtesResultSet vereinfachtesResultSet =
connect.issueSelectStatement(mysqlRequest, user.getEmail(), user.getPassword()); connect.issueSelectStatement(mysqlRequest, user.getEmail(), user.getPassword());
boolean next = vereinfachtesResultSet.next(); boolean next = vereinfachtesResultSet.next();
if (!next) {
connect.close();
return null;
}
String token = vereinfachtesResultSet.getString("token"); String token = vereinfachtesResultSet.getString("token");
connect.close();
return token; return token;
} }
...@@ -138,6 +146,7 @@ public class ManagementImpl implements Management { ...@@ -138,6 +146,7 @@ public class ManagementImpl implements Management {
connect.close(); connect.close();
return user; return user;
} else { } else {
connect.close();
return null; return null;
} }
} }
......
package unipotsdam.gf.core.management;
import unipotsdam.gf.core.management.user.User;
import unipotsdam.gf.interfaces.IMunschkin;
import unipotsdam.gf.modules.munchkin.controller.MunchkinImpl;
import unipotsdam.gf.modules.munchkin.model.Munschkin;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.net.URI;
import java.net.URISyntaxException;
@Path("/user")
public class UserService {
// This method is called if HTML is request
@POST
@Produces(MediaType.TEXT_HTML)
@Path("/create")
public Response createUser(@FormParam("name") String name, @FormParam("password") String password,
@FormParam("email") String email, @FormParam("isStudent") String isStudent)
throws URISyntaxException {
ManagementImpl management = new ManagementImpl();
User user = new User(name, password, email, isStudent == null);
return login(true, user);
}
// This method is called if HTML is request
@POST
@Produces(MediaType.TEXT_HTML)
@Path("/exists")
public Response existsUser(@FormParam("name") String name, @FormParam("password") String password,
@FormParam("email") String email)
throws URISyntaxException {
ManagementImpl management = new ManagementImpl();
User user = new User(name, password, email, null);
return login(false, user);
}
protected Response login(boolean createUser, User user) throws URISyntaxException {
ManagementImpl management = new ManagementImpl();
if (management.exists(user)) {
String existsUrl = "../register.jsp?userExists=true";
return forwardToLocation(existsUrl);
} else {
if (createUser) {
management.create(user, null);
} else {
String existsUrl = "../index.jsp?userExists=false";
return forwardToLocation(existsUrl);
}
String successUrl;
if (user.getStudent() != null && user.getStudent()) {
successUrl = "../pages/overview-student.html?token=";
} else {
successUrl = "../pages/overview-docent.html?token=";
}
successUrl += management.getUserToken(user);
return forwardToLocation(successUrl);
}
}
private Response forwardToLocation(String existsUrl) throws URISyntaxException {
return Response.seeOther(new URI(existsUrl)).build();
}
}
package unipotsdam.gf.core.management.user.servlets;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = "CreateUser")
public class CreateUser extends UserHttpServlet {
protected void doPost(
HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
handleRequest(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
handleRequest(request, response);
}
private void handleRequest(HttpServletRequest request, HttpServletResponse response) {
login(true, request, response);
}
}
package unipotsdam.gf.core.management.user.servlets;
import unipotsdam.gf.core.management.ManagementImpl;
import unipotsdam.gf.core.management.user.User;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet(name = "UserExists")
public class UserExists extends UserHttpServlet {
protected void doPost(
HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
handeRequest(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
handeRequest(request, response);
return;
}
private void handeRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
login(false, request, response);
}
}
package unipotsdam.gf.core.management.user.servlets;
import unipotsdam.gf.core.management.ManagementImpl;
import unipotsdam.gf.core.management.user.User;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class UserHttpServlet extends HttpServlet {
protected User parseUser(HttpServletRequest request) {
String password = request.getParameter("password");
String email = request.getParameter("email");
return new User(null, password, email, null);
}
protected User parseFullUser(HttpServletRequest request) {
User part1 = parseUser(request);
String name = request.getParameter("name");
String isStudentRaw = request.getParameter("isStudent");
Boolean isStudent = isStudentRaw == null;
part1.setName(name);
part1.setStudent(isStudent);
return part1;
}
protected void forwardToLocation(HttpServletResponse response, String nextJSP) {
response.setHeader("Location", nextJSP);
response.setContentType("text/html");
response.setStatus(HttpServletResponse.SC_FOUND); // SC_FOUND = 302
}
protected void login(boolean createUser, HttpServletRequest request, HttpServletResponse response) {
User user = parseFullUser(request);
ManagementImpl management = new ManagementImpl();
if (management.exists(user)) {
String existsUrl = "../register.jsp?userExists=true";
forwardToLocation(response, existsUrl);
} else {
if (createUser) {
management.create(user, null);
}
String successUrl;
if (user.getStudent()) {
successUrl = "../pages/overview-student.html?token=";
} else {
successUrl = "../pages/overview-docent.html?token=";
}
successUrl += management.getUserToken(user);
forwardToLocation(response, successUrl);
}
}
}
...@@ -38,30 +38,6 @@ ...@@ -38,30 +38,6 @@
<url-pattern>/rest/*</url-pattern> <url-pattern>/rest/*</url-pattern>
</servlet-mapping> </servlet-mapping>
<!-- create user servlet mapping -->
<servlet>
<servlet-name>CreateUser</servlet-name>
<servlet-class>unipotsdam.gf.core.management.user.servlets.CreateUser</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CreateUser</servlet-name>
<url-pattern>/servlet/createUser</url-pattern>
</servlet-mapping>
<!-- user exists servlet mapping -->
<servlet>
<servlet-name>UserExists</servlet-name>
<servlet-class>unipotsdam.gf.core.management.user.servlets.UserExists</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UserExists</servlet-name>
<url-pattern>/servlet/userExists</url-pattern>
</servlet-mapping>
<!-- loginFilter --> <!-- loginFilter -->
<filter> <filter>
<filter-name>RequestLoggingFilter</filter-name> <!-- mandatory --> <filter-name>RequestLoggingFilter</filter-name> <!-- mandatory -->
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<body> <body>
<div class="login-clean"> <div class="login-clean">
<form method="post" action="./servlet/userExists"> <form method="post" action="./rest/user/exists">
<h2 class="sr-only">Login Formular</h2> <h2 class="sr-only">Login Formular</h2>
<div class="illustration"><img src="assets/img/fides-logo.svg"></div> <div class="illustration"><img src="assets/img/fides-logo.svg"></div>
<div class="form-group"><input class="form-control" type="email" name="email" placeholder="Email" autofocus> <div class="form-group"><input class="form-control" type="email" name="email" placeholder="Email" autofocus>
......
...@@ -21,7 +21,8 @@ ...@@ -21,7 +21,8 @@
<body> <body>
<div class="login-clean"> <div class="login-clean">
<form method="post" action="./servlet/createUser"> <%--<form method="post" action="./servlet/createUser">--%>
<form method="post" action="./rest/user/create">
<h2 class="sr-only">Login Formular</h2> <h2 class="sr-only">Login Formular</h2>
<div class="illustration"><img src="assets/img/fides-logo.svg"></div> <div class="illustration"><img src="assets/img/fides-logo.svg"></div>
<div class="form-group"><input class="form-control" name="name" placeholder="Name"></div> <div class="form-group"><input class="form-control" name="name" placeholder="Name"></div>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment