package ru.semiot.platform.apigateway.config;
import arq.rsparql;
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 java.io.IOException;
import java.util.Enumeration;
import javax.servlet.http.Cookie;
import org.json.JSONException;
import org.json.JSONObject;
/**
*
* @author Daniil Garayzuev <garayzuev@gmail.com>
*/
@WebServlet(urlPatterns = {"auth"})
public class LoginServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
StringBuilder builder = new StringBuilder();
String line;
while ((line = request.getReader().readLine()) != null) {
builder.append(line);
}
try {
JSONObject object = new JSONObject(builder.toString());
request.login(object.optString("username"), object.optString("password"));
response.setHeader("JSESSIONID", request.getSession().getId());
} catch (JSONException ex) {
response.setStatus(400);
} catch (ServletException ex) {
response.setStatus(403);
}
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if (request.getHeader("Accept") != null && request.getHeader("Accept").contains("text/html")) {
response.sendRedirect(request.getContextPath() + "/login.html");
} else {
response.setStatus(401);
}
}
}