package org.joget.workflow.controller; import javax.servlet.http.HttpServletRequest; import org.joget.commons.util.MobileUtil; import org.joget.workflow.model.service.UserviewSetupManager; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.ui.AbstractProcessingFilter; import org.springframework.security.ui.savedrequest.SavedRequest; import org.springframework.security.util.UrlUtils; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class LoginController { @Autowired private UserviewSetupManager userviewSetupManager; @RequestMapping("/index") public String index() { return "index"; } @RequestMapping("/login") public String login(ModelMap map, HttpServletRequest request) { SavedRequest savedRequest = (SavedRequest)request.getSession().getAttribute(AbstractProcessingFilter.SPRING_SECURITY_SAVED_REQUEST_KEY); String savedUrl = ""; if (savedRequest != null) { savedUrl = UrlUtils.getRequestUrl(savedRequest); } else if (request.getHeader("referer") != null) { //for userview logout savedUrl = request.getHeader("referer"); } //mobile login if (savedUrl.contains("web/client/mobile/")) { if(savedRequest == null){ return "redirect:/web/client/mobile/assignment/inbox"; } return "mobileLogin"; } if(MobileUtil.mobileDeviceDetect(request)){ return "redirect:/web/client/mobile/assignment/inbox"; } if (savedUrl.contains("web/userview")) { String id = savedUrl.substring(savedUrl.lastIndexOf("/") + 1); if (id.contains("?")) { id = id.substring(0, id.indexOf("?")); } if(savedRequest == null){ return "redirect:/web/userview/" + id; } map.addAttribute("userviewSetup", userviewSetupManager.getUserviewSetup(id)); return "userview/userviewLogin"; } return "login"; } }