From 2f682b5e3cfc3fc5f961b60129be7bc90e0d6a03 Mon Sep 17 00:00:00 2001
From: Vitaly Takmazov
Date: Wed, 28 Dec 2016 22:38:21 +0300
Subject: juick-www: now on spring-webmvc
---
.../main/java/com/juick/www/controllers/Login.java | 258 +++++++++++++++++++++
1 file changed, 258 insertions(+)
create mode 100644 juick-www/src/main/java/com/juick/www/controllers/Login.java
(limited to 'juick-www/src/main/java/com/juick/www/controllers/Login.java')
diff --git a/juick-www/src/main/java/com/juick/www/controllers/Login.java b/juick-www/src/main/java/com/juick/www/controllers/Login.java
new file mode 100644
index 00000000..bce3e000
--- /dev/null
+++ b/juick-www/src/main/java/com/juick/www/controllers/Login.java
@@ -0,0 +1,258 @@
+/*
+ * Juick
+ * Copyright (C) 2008-2011, Ugnich Anton
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see .
+ */
+package com.juick.www.controllers;
+
+import com.juick.service.UserService;
+import com.juick.www.Utils;
+import com.juick.www.WebApp;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import javax.inject.Inject;
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+/**
+ *
+ * @author Ugnich Anton
+ */
+@Controller
+public class Login {
+ @Inject
+ UserService userService;
+ @Inject
+ WebApp webApp;
+
+ @RequestMapping(value = "/login", method = RequestMethod.GET)
+ protected void doGetLoginForm(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ String hash = request.getQueryString();
+ if (hash != null) {
+ if (hash.length() > 32) {
+ response.sendError(HttpServletResponse.SC_BAD_REQUEST);
+ return;
+ }
+
+ if (userService.getUIDbyHash(hash) > 0) {
+ Cookie c = new Cookie("hash", hash);
+ c.setMaxAge(365 * 24 * 60 * 60);
+ response.addCookie(c);
+ response.sendRedirect("/");
+ } else {
+ response.sendError(HttpServletResponse.SC_FORBIDDEN);
+ }
+ }
+ com.juick.User visitor = webApp.getVisitorUser(request, response);
+ if (visitor.getUid() > 0) {
+ Utils.sendTemporaryRedirect(response, "/");
+ return;
+ }
+
+ response.setContentType("text/html; charset=UTF-8");
+ try (PrintWriter out = response.getWriter()) {
+ out.println("");
+ out.println("");
+ out.println("