|
|
@ -47,7 +47,6 @@ import org.springframework.web.servlet.ModelAndView; |
|
|
|
import org.springframework.web.servlet.view.RedirectView; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import javax.annotation.Resources; |
|
|
|
import javax.servlet.http.HttpServletRequest; |
|
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
import java.io.IOException; |
|
|
@ -91,7 +90,8 @@ public class SysLoginController extends BaseController { |
|
|
|
|
|
|
|
@Value("${water.portalUrl:}") |
|
|
|
private String portalUrl; |
|
|
|
|
|
|
|
@Value("${water.logoutUrl:}") |
|
|
|
public String logoutUrl; |
|
|
|
@Resource(name = "commonPool") |
|
|
|
private Executor executor; |
|
|
|
|
|
|
@ -142,20 +142,21 @@ public class SysLoginController extends BaseController { |
|
|
|
@PostMapping("/logout") |
|
|
|
@SaCheckLogin |
|
|
|
public AjaxResult logout() { |
|
|
|
SysUser sysUser = UserUtils.getUser(); |
|
|
|
if (sysUser != null) { |
|
|
|
String token = permissionService.getPortalToken(sysUser.getId()); |
|
|
|
if (StringUtils.isNotBlank(token)) { |
|
|
|
try { |
|
|
|
waterRequestUtil.logout(token); |
|
|
|
} catch (Exception ignore) { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
// 登录保存缓存
|
|
|
|
StpUtil.logout(); |
|
|
|
//删除缓存
|
|
|
|
return AjaxResult.success(); |
|
|
|
if (StringUtils.isNotBlank(logoutUrl)) { |
|
|
|
return AjaxResult.success(new ProxyInfo() {{ |
|
|
|
setType("redirect"); |
|
|
|
setUrl(logoutUrl); |
|
|
|
}}); |
|
|
|
} else { |
|
|
|
String loginPath = "login"; |
|
|
|
return AjaxResult.success(new ProxyInfo() {{ |
|
|
|
setType("local"); |
|
|
|
setUrl(loginPath); |
|
|
|
}}); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -285,10 +286,17 @@ public class SysLoginController extends BaseController { |
|
|
|
@GetMapping("/signOnLogin") |
|
|
|
public ModelAndView signOnLogin(HttpServletRequest request, |
|
|
|
HttpServletResponse response, |
|
|
|
@RequestParam(name = "code") String code, |
|
|
|
@RequestParam(name = "page", required = false) String page, |
|
|
|
@RequestParam(name = "token") String token) throws IOException { |
|
|
|
CompletableFuture<List<MenuDto>> menusFuture = CompletableFuture.supplyAsync(() -> portalMenu(token), executor); |
|
|
|
CompletableFuture<SysUser> userFuture = CompletableFuture.supplyAsync(() -> innerLogin(token), executor); |
|
|
|
if (StringUtils.isNotBlank(code)) { |
|
|
|
token = waterRequestUtil.getToken(code); |
|
|
|
} else if (StringUtils.isBlank(token)) { |
|
|
|
throw new BaseException("token不能为空"); |
|
|
|
} |
|
|
|
String accessToken = token; |
|
|
|
CompletableFuture<List<MenuDto>> menusFuture = CompletableFuture.supplyAsync(() -> portalMenu(accessToken), executor); |
|
|
|
CompletableFuture<SysUser> userFuture = CompletableFuture.supplyAsync(() -> innerLogin(accessToken), executor); |
|
|
|
CompletableFuture.allOf(menusFuture, userFuture).join(); |
|
|
|
List<MenuDto> menus = menusFuture.join(); |
|
|
|
SysUser simpleUser = userFuture.join(); |
|
|
@ -299,9 +307,9 @@ public class SysLoginController extends BaseController { |
|
|
|
permissionService.setPortalToken(simpleUser.getId(), token); |
|
|
|
StpUtil.login(simpleUser.getId()); |
|
|
|
StpUtil.getSession().set("jianwei-user", simpleUser); |
|
|
|
String accessToken = StpUtil.getTokenValue(); |
|
|
|
log.info("登录成功,用户[{}]token:{}", simpleUser.getId(), accessToken); |
|
|
|
RedirectView redirectView = new RedirectView(redirect + "?token=" + accessToken + "&page=" + page); |
|
|
|
String innerToken = StpUtil.getTokenValue(); |
|
|
|
log.info("登录成功,用户[{}]token:{}", simpleUser.getId(), innerToken); |
|
|
|
RedirectView redirectView = new RedirectView(redirect + "?token=" + innerToken + "&page=" + page); |
|
|
|
return new ModelAndView(redirectView); |
|
|
|
} |
|
|
|
|
|
|
|