From 206742aed99a20fea014c83408fb44ff36089351 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Wed, 7 Dec 2022 15:54:04 +0300 Subject: Remove login popup --- src/main/java/com/juick/www/controllers/Site.java | 33 +++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'src/main/java/com/juick/www/controllers/Site.java') diff --git a/src/main/java/com/juick/www/controllers/Site.java b/src/main/java/com/juick/www/controllers/Site.java index 46440b2b..a0b8c5b0 100644 --- a/src/main/java/com/juick/www/controllers/Site.java +++ b/src/main/java/com/juick/www/controllers/Site.java @@ -26,6 +26,7 @@ import com.juick.util.WebUtils; import com.juick.www.WebApp; import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpSession; import com.juick.service.*; import com.juick.service.security.annotation.Visitor; @@ -36,6 +37,8 @@ import org.apache.commons.text.StringEscapeUtils; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.web.WebAttributes; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.CookieValue; @@ -92,6 +95,36 @@ public class Site { .map(t -> t.getTag().getName()).collect(Collectors.toList())); } + @GetMapping("/login") + public String getloginForm(@Visitor User visitor, HttpSession session, + @RequestParam(required = false, defaultValue = "true") boolean redirect, ModelMap model) { + if (!visitor.isAnonymous()) { + return redirect ? "redirect:/" : "redirect:/login/success"; + } + model.addAttribute("visitor", visitor); + model.addAttribute("tags", tagService.getPopularTags()); + AuthenticationException authEx = (AuthenticationException) session + .getAttribute(WebAttributes.AUTHENTICATION_EXCEPTION); + + if (authEx != null) { + model.addAttribute("authErrorMessage", authEx.getLocalizedMessage()); + } + + String socialLoginError = (String) session.getAttribute(SocialLogin.AUTH_ERROR); + + if (socialLoginError != null) { + model.addAttribute("authErrorMessage", socialLoginError); + } + + return "views/login"; + } + + @GetMapping("/login/success") + public String getSuccessLogin(@Visitor User visitor, ModelMap model) { + model.addAttribute("hash", userService.getHashByUID(visitor.getUid())); + return "views/login_success"; + } + @GetMapping("/") protected String doGet(@Visitor User visitor, Locale locale, @RequestParam(required = false) String tag, @RequestParam(name = "show", required = false) String paramShow, -- cgit v1.2.3