From 4f70a1465bfc8001f2dd38427615b682ec98c2d2 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Mon, 19 Mar 2018 17:36:44 +0100 Subject: [PATCH] when users remove himself session expires automatically --- .../mapviewer/api/users/UserController.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/users/UserController.java b/rest-api/src/main/java/lcsb/mapviewer/api/users/UserController.java index c5a5d4731c..f85cafd562 100644 --- a/rest-api/src/main/java/lcsb/mapviewer/api/users/UserController.java +++ b/rest-api/src/main/java/lcsb/mapviewer/api/users/UserController.java @@ -1,9 +1,9 @@ package lcsb.mapviewer.api.users; import java.io.IOException; -import java.util.TreeMap; import java.util.List; import java.util.Map; +import java.util.TreeMap; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; @@ -124,18 +124,16 @@ public class UserController extends BaseController { @RequestMapping(value = "/doLogout", method = { RequestMethod.GET, RequestMethod.POST }, produces = { MediaType.APPLICATION_JSON_VALUE }) - public Map<String, String> logout(@CookieValue(value = Configuration.AUTH_TOKEN) String token, + public Map<String, Object> logout(@CookieValue(value = Configuration.AUTH_TOKEN) String token, HttpServletRequest request, HttpServletResponse response // ) throws SecurityException, IOException { // spring logout Authentication auth = SecurityContextHolder.getContext().getAuthentication(); - logger.debug("LOGOUT"); - logger.debug(auth); if (auth != null) { new SecurityContextLogoutHandler().logout(request, response, auth); } - Map<String, String> result = new TreeMap<>(); + Map<String, Object> result = new TreeMap<>(); result.put("status", "OK"); final Boolean useSecureCookie = false; @@ -177,12 +175,17 @@ public class UserController extends BaseController { @RequestMapping(value = "/users/{login:.+}", method = { RequestMethod.DELETE }, produces = { MediaType.APPLICATION_JSON_VALUE }) - public Map<String, Object> removeProject(// + public Map<String, Object> removeUser(// @PathVariable(value = "login") String login, // - @CookieValue(value = Configuration.AUTH_TOKEN) String token // + @CookieValue(value = Configuration.AUTH_TOKEN) String token, // + HttpServletRequest request, HttpServletResponse response // ) throws SecurityException, IOException, QueryException { - return userRest.removeUser(token, login); - + String currentUserLogin = getUserService().getUserByToken(token).getLogin(); + Map<String, Object> result = userRest.removeUser(token, login); + if (login.equals(currentUserLogin)) { + return logout(token, request, response); + } + return result; } /** -- GitLab