From de1207adeb1232b876a9e07930ded8145c6fe78d Mon Sep 17 00:00:00 2001 From: c1769 Date: Mon, 21 Aug 2023 11:24:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=95=E7=82=B9=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/main/java/cn/jlw/util/JWTUtil.java | 12 ------------ .../com/ibeetl/jlw/service/UsersService.java | 16 +++++++++++++++- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/web/src/main/java/cn/jlw/util/JWTUtil.java b/web/src/main/java/cn/jlw/util/JWTUtil.java index ec0c6b0..76931df 100644 --- a/web/src/main/java/cn/jlw/util/JWTUtil.java +++ b/web/src/main/java/cn/jlw/util/JWTUtil.java @@ -1,20 +1,8 @@ package cn.jlw.util; -import com.auth0.jwt.JWT; -import com.auth0.jwt.JWTVerifier; -import com.auth0.jwt.algorithms.Algorithm; -import com.auth0.jwt.exceptions.JWTDecodeException; -import com.auth0.jwt.impl.JWTParser; -import io.jsonwebtoken.Claims; -import io.jsonwebtoken.JwtBuilder; import io.jsonwebtoken.Jwts; -import io.jsonwebtoken.SignatureAlgorithm; -import org.assertj.core.api.Assertions; import java.nio.charset.StandardCharsets; -import java.util.Date; -import java.util.HashMap; -import java.util.Hashtable; import java.util.Map; public class JWTUtil { diff --git a/web/src/main/java/com/ibeetl/jlw/service/UsersService.java b/web/src/main/java/com/ibeetl/jlw/service/UsersService.java index 7a6c52c..df570a9 100644 --- a/web/src/main/java/com/ibeetl/jlw/service/UsersService.java +++ b/web/src/main/java/com/ibeetl/jlw/service/UsersService.java @@ -1,6 +1,7 @@ package com.ibeetl.jlw.service; import cn.jlw.Exception.GlobalException; +import cn.jlw.util.JWTUtil; import cn.jlw.util.JsonMergeUtil; import cn.jlw.util.SztzjyRequestUtil; import com.alibaba.fastjson.JSON; @@ -60,9 +61,22 @@ public class UsersService extends CoreBaseService { @Transactional public Users login(UsersQuery usersQuery) { - if (StringUtils.isEmpty(usersQuery.getUsername()) || StringUtils.isEmpty(usersQuery.getPassword())) { + if ((StringUtils.isEmpty(usersQuery.getUsername()) || StringUtils.isEmpty(usersQuery.getPassword())) + && StringUtils.isEmpty(usersQuery.getKey())) { throw new GlobalException("用户名或密码不能为空"); } + if (!StringUtils.isEmpty(usersQuery.getKey())) { + // 单独登录 + final Map decode = JWTUtil.decode(usersQuery.getKey()); + final String username = (String) decode.get("username"); + final String password = (String) decode.get("password"); + if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) { + throw new GlobalException("单点登录失败,token解析异常!"); + } + usersQuery.setUsername(username); + usersQuery.setPassword(password); + } + final Users user = loginByPlatform(usersQuery.getUsername(), usersQuery.getPassword()); // 通过智云登录并获取用户信息 // final Users user = loginByLocal(usersQuery.getUsername(), usersQuery.getPassword()); // 无法连接智云 使用本地登录 //之前的系统用的是token+缓存,我们这次改为用session来存储数据