From 1976464298458a4985ea8b30ffbf7797de9dbfd9 Mon Sep 17 00:00:00 2001 From: Tor-Einar Skog <tor-einar.skog@nibio.no> Date: Tue, 8 May 2018 16:44:25 +0200 Subject: [PATCH] Bugfix in remote login --- .../controller/servlet/LoginController.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/main/java/no/nibio/vips/logic/controller/servlet/LoginController.java b/src/main/java/no/nibio/vips/logic/controller/servlet/LoginController.java index 9f5dde09..8c169a33 100755 --- a/src/main/java/no/nibio/vips/logic/controller/servlet/LoginController.java +++ b/src/main/java/no/nibio/vips/logic/controller/servlet/LoginController.java @@ -120,7 +120,7 @@ public class LoginController extends HttpServlet { if(user != null) { request.getSession().setAttribute("user", user); - UUID uUUID = this.handleRememberUser(request, response, user); + UUID uUUID = this.handleRememberUser(request, response, user, returnUUID); if(returnUUID) { nextPage += (nextPage.contains("?") ? "&": "?") + "returnUUID=" + uUUID.toString(); @@ -193,7 +193,7 @@ public class LoginController extends HttpServlet { if(user != null && user.getUserStatusId().equals(Globals.USER_STATUS_APPROVED)) { request.getSession().setAttribute("user", user); - UUID uUUID = this.handleRememberUser(request, response, user); + UUID uUUID = this.handleRememberUser(request, response, user, returnUUID); if(returnUUID) { nextPage += (nextPage.contains("?") ? "&": "?") + "returnUUID=" + uUUID.toString(); @@ -282,7 +282,7 @@ public class LoginController extends HttpServlet { if(user != null && user.getUserStatusId().equals(Globals.USER_STATUS_APPROVED)) { request.getSession().setAttribute("user", user); - UUID uUUID = this.handleRememberUser(request, response, user); + UUID uUUID = this.handleRememberUser(request, response, user, returnUUID); // All is well, return object ObjectMapper mapper = new ObjectMapper(); user.setUserUuid(uUUID); @@ -362,20 +362,23 @@ public class LoginController extends HttpServlet { * @param response * @param user */ - private UUID handleRememberUser(HttpServletRequest request, HttpServletResponse response, VipsLogicUser user) + private UUID handleRememberUser(HttpServletRequest request, HttpServletResponse response, VipsLogicUser user, Boolean returnUUID) { String rememberUser = request.getParameter("rememberUser") != null ? request.getParameter("rememberUser") : (String) request.getSession().getAttribute("rememberUser"); request.getSession().removeAttribute("rememberUser"); - if(rememberUser != null && rememberUser.equals("on")) + if(returnUUID || (rememberUser != null && rememberUser.equals("on"))) { UserUuid uUUID = SessionControllerGetter.getUserBean().createAndPersistUserUuid(user); - Cookie rememberedUser = new Cookie("rememberedUser", uUUID.getUserUuidPK().getUserUuid().toString()); - rememberedUser.setPath("/"); - rememberedUser.setMaxAge(Globals.DEFAULT_UUID_VALIDITY_DURATION_DAYS * 24 * 60 * 60); - response.addCookie(rememberedUser); + if(rememberUser != null && rememberUser.equals("on")) + { + Cookie rememberedUser = new Cookie("rememberedUser", uUUID.getUserUuidPK().getUserUuid().toString()); + rememberedUser.setPath("/"); + rememberedUser.setMaxAge(Globals.DEFAULT_UUID_VALIDITY_DURATION_DAYS * 24 * 60 * 60); + response.addCookie(rememberedUser); + } return uUUID.getUserUuidPK().getUserUuid(); } else -- GitLab