liu
7 天以前 a54447507a3af4347e6b5981eb9da21d5ca03898
src/main/java/com/ruoyi/tide/controller/TideController.java
@@ -105,12 +105,16 @@
        if (ObjectUtils.isEmpty(password)) {
            password = firstText(userInfo, "tenantPassword", "password", "pwd");
        }
        if (ObjectUtils.isEmpty(account) || ObjectUtils.isEmpty(password)) {
            log.error("[浪潮SSO] 未取到租户账号/密码, userInfo={}", userInfo);
        // 免密登录只需账号;password 仅作日志参考,浪潮侧不返回也不影响登录
        if (ObjectUtils.isEmpty(account)) {
            log.error("[浪潮SSO] 未取到租户账号, userInfo={}", userInfo);
            return AjaxResult.error("浪潮未返回企业租户账号信息,请联系平台管理员检查该账号的企业绑定");
        }
        try {
            String generateToken = loginService.login(account, password, null, IdWorker.get32UUID());
            // 浪潮侧已完成身份认证(code 换 token → 取 userInfo),本地不再用 tenantPassword 二次校验。
            // 原实现 login(account, password, ...) 在浪潮配置的密码与本地 sys_user.password 不一致时
            // 会抛 UserPasswordNotMatchException,表现为「租户账号[xxx]在系统中登录失败(用户不存在/密码错误)」。
            String generateToken = loginService.ssoLogin(account);
            AjaxResult ajax = AjaxResult.success();
            ajax.put(Constants.TOKEN, generateToken);
            return ajax;