From e5b5a120d298d15e02d238b9019cba207779c2c6 Mon Sep 17 00:00:00 2001 From: wynne1005 Date: Thu, 18 Mar 2021 12:05:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96e9=E5=8D=95=E7=82=B9=E7=99=BB?= =?UTF-8?q?=E5=BD=95=20=E5=90=8Csession=E6=83=85=E5=86=B5=E4=B8=8B=20?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E6=A0=B9=E6=8D=AE=E7=94=A8=E6=88=B7=E5=90=8D?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E6=98=AF=E5=90=A6=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apiservice/controller/base/WhiteController.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java index cee612b..153f879 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/base/WhiteController.java @@ -204,14 +204,6 @@ public class WhiteController extends CoreBaseController { @GetMapping(value = "/auth/{loginStrategy}/sso-login") @ApiOperation(value = "登录", notes = "登录") public ResultBean ssoLogin(HttpServletRequest request, @PathVariable(name = "loginStrategy") String loginStrategy) throws NoSuchFieldException { - try { - SessionUser sessionUser = AuthUtil.getSessionUser(); - if (sessionUser != null) { - return new ResultBean(true, AuthUtil.getSession().getId().toString(), AuthUtil.getSessionUser()); - } - } catch (Exception e) { - LOGGER.info("SSO 单点登录 未找到session 跳过"); - } String fieldMapping = RedisCacheTool.getSysConfigStrVal(PlatformConstWords.SSO_REQUEST_MAPPING); if (StringUtils.isEmpty(fieldMapping)) { return ResultBean.fail("请在平台数据库中配置表添加字段映射配置"); @@ -223,6 +215,17 @@ public class WhiteController extends CoreBaseController { ValidatorBean.beginValid(loginModel) .notNull("loginStrategy", loginModel.getLoginStrategy()) .notNull("loginName", loginModel.getLoginName()); + try { + SessionUser sessionUser = AuthUtil.getSessionUser(); + if (sessionUser != null) { + if (sessionUser.getUserCode().equals(loginModel.getLoginName()) || sessionUser.getUserName().equals(loginModel.getLoginName())) { + return new ResultBean(true, AuthUtil.getSession().getId().toString(), AuthUtil.getSessionUser()); + } + } + } catch (Exception e) { + LOGGER.info("SSO 单点登录 未找到session 跳过"); + } + String beanName = ImppEnumUtil.AUTH_LOGIN_STRATEGY.codeOfStrategyName(loginModel.getLoginStrategy()); ISystemLoginStrategyService loginStrategyService = (ISystemLoginStrategyService) SpringContextsUtil.getBean(beanName);