From d45d404fa06f98a9dc8b763e8dac6263ef106441 Mon Sep 17 00:00:00 2001
From: click33 <2393584716@qq.com>
Date: Sat, 30 Apr 2022 08:21:04 +0800
Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=20sa-token-jwt=20=E6=8F=92?=
=?UTF-8?q?=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../satoken/exception/ApiDisabledException.java | 2 +-
.../satoken/exception/NotLoginException.java | 2 +-
.../dev33/satoken/listener/SaTokenListener.java | 3 ++-
.../listener/SaTokenListenerDefaultImpl.java | 2 +-
.../java/cn/dev33/satoken/stp/StpLogic.java | 2 +-
.../sa-token-demo-sso3-client-nosdk/pom.xml | 13 ++++++-------
.../main/java/com/pj/sso/SsoRequestUtil.java | 17 +++--------------
.../java/cn/dev33/satoken/jwt/SaJwtUtil.java | 2 +-
.../satoken/jwt/StpLogicJwtForStateless.java | 15 ++++++++-------
9 files changed, 24 insertions(+), 34 deletions(-)
diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/exception/ApiDisabledException.java b/sa-token-core/src/main/java/cn/dev33/satoken/exception/ApiDisabledException.java
index a4779fd2..052a456d 100644
--- a/sa-token-core/src/main/java/cn/dev33/satoken/exception/ApiDisabledException.java
+++ b/sa-token-core/src/main/java/cn/dev33/satoken/exception/ApiDisabledException.java
@@ -12,7 +12,7 @@ public class ApiDisabledException extends SaTokenException {
private static final long serialVersionUID = 6806129545290130133L;
/** 异常提示语 */
- public static final String BE_MESSAGE = "This API is disabled";
+ public static final String BE_MESSAGE = "this api is disabled";
/**
* 一个异常:代表 API 已被禁用
diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/exception/NotLoginException.java b/sa-token-core/src/main/java/cn/dev33/satoken/exception/NotLoginException.java
index 80a07abd..751b245c 100644
--- a/sa-token-core/src/main/java/cn/dev33/satoken/exception/NotLoginException.java
+++ b/sa-token-core/src/main/java/cn/dev33/satoken/exception/NotLoginException.java
@@ -26,7 +26,7 @@ public class NotLoginException extends SaTokenException {
/** 表示未提供token */
public static final String NOT_TOKEN = "-1";
- public static final String NOT_TOKEN_MESSAGE = "未提供Token";
+ public static final String NOT_TOKEN_MESSAGE = "未能读取到有效Token";
/** 表示token无效 */
public static final String INVALID_TOKEN = "-2";
diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListener.java b/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListener.java
index f2dbea40..4fdff910 100644
--- a/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListener.java
+++ b/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListener.java
@@ -14,9 +14,10 @@ public interface SaTokenListener {
* 每次登录时触发
* @param loginType 账号类别
* @param loginId 账号id
+ * @param tokenValue 本次登录产生的 token 值
* @param loginModel 登录参数
*/
- public void doLogin(String loginType, Object loginId, SaLoginModel loginModel);
+ public void doLogin(String loginType, Object loginId, String tokenValue, SaLoginModel loginModel);
/**
* 每次注销时触发
diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListenerDefaultImpl.java b/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListenerDefaultImpl.java
index 45b70079..d895b658 100644
--- a/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListenerDefaultImpl.java
+++ b/sa-token-core/src/main/java/cn/dev33/satoken/listener/SaTokenListenerDefaultImpl.java
@@ -17,7 +17,7 @@ public class SaTokenListenerDefaultImpl implements SaTokenListener {
* 每次登录时触发
*/
@Override
- public void doLogin(String loginType, Object loginId, SaLoginModel loginModel) {
+ public void doLogin(String loginType, Object loginId, String tokenValue, SaLoginModel loginModel) {
println("账号[" + loginId + "]登录成功");
}
diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java b/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java
index 14291d90..84d0556e 100644
--- a/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java
+++ b/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpLogic.java
@@ -350,7 +350,7 @@ public class StpLogic {
setLastActivityToNow(tokenValue);
// $$ 通知监听器,账号xxx 登录成功
- SaManager.getSaTokenListener().doLogin(loginType, id, loginModel);
+ SaManager.getSaTokenListener().doLogin(loginType, id, tokenValue, loginModel);
// 检查此账号会话数量是否超出最大值
if(config.getMaxLoginCount() != -1) {
diff --git a/sa-token-demo/sa-token-demo-sso3-client-nosdk/pom.xml b/sa-token-demo/sa-token-demo-sso3-client-nosdk/pom.xml
index 1fbd8d5d..b4e0ba3c 100644
--- a/sa-token-demo/sa-token-demo-sso3-client-nosdk/pom.xml
+++ b/sa-token-demo/sa-token-demo-sso3-client-nosdk/pom.xml
@@ -10,7 +10,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.0.0.RELEASE
+ 2.5.12
@@ -22,13 +22,12 @@
spring-boot-starter-web
-
-
- com.ejlchina
- okhttps
- 3.1.1
+
+
+ com.dtflys.forest
+ forest-spring-boot-starter
+ 1.5.19
-
diff --git a/sa-token-demo/sa-token-demo-sso3-client-nosdk/src/main/java/com/pj/sso/SsoRequestUtil.java b/sa-token-demo/sa-token-demo-sso3-client-nosdk/src/main/java/com/pj/sso/SsoRequestUtil.java
index 81e17dc7..02ec5fb7 100644
--- a/sa-token-demo/sa-token-demo-sso3-client-nosdk/src/main/java/com/pj/sso/SsoRequestUtil.java
+++ b/sa-token-demo/sa-token-demo-sso3-client-nosdk/src/main/java/com/pj/sso/SsoRequestUtil.java
@@ -1,14 +1,12 @@
package com.pj.sso;
-import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.security.MessageDigest;
import java.util.Map;
import java.util.Random;
-import com.ejlchina.okhttps.OkHttps;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import com.dtflys.forest.Forest;
import com.pj.sso.util.AjaxJson;
/**
@@ -62,18 +60,9 @@ public class SsoRequestUtil {
* @param url 请求地址
* @return 返回的结果
*/
- @SuppressWarnings("unchecked")
public static AjaxJson request(String url) {
- String body = OkHttps.sync(url)
- .post()
- .getBody()
- .toString();
- try {
- Map map = new ObjectMapper().readValue(body, Map.class);
- return new AjaxJson(map);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
+ Map map = Forest.post(url).executeAsMap();
+ return new AjaxJson(map);
}
/**
diff --git a/sa-token-plugin/sa-token-jwt/src/main/java/cn/dev33/satoken/jwt/SaJwtUtil.java b/sa-token-plugin/sa-token-jwt/src/main/java/cn/dev33/satoken/jwt/SaJwtUtil.java
index 80dc2b02..b7472101 100644
--- a/sa-token-plugin/sa-token-jwt/src/main/java/cn/dev33/satoken/jwt/SaJwtUtil.java
+++ b/sa-token-plugin/sa-token-jwt/src/main/java/cn/dev33/satoken/jwt/SaJwtUtil.java
@@ -55,7 +55,7 @@ public class SaJwtUtil {
// 构建
String token = JWT.create()
.setPayload(LOGIN_ID, loginId)
- // 混入随机字符
+ // 混入随机字符串,防止每次生成的 token 都是一样的
.setPayload("rn", SaFoxUtil.getRandomString(32))
.addPayloads(extraData)
.setKey(keyt.getBytes())
diff --git a/sa-token-plugin/sa-token-jwt/src/main/java/cn/dev33/satoken/jwt/StpLogicJwtForStateless.java b/sa-token-plugin/sa-token-jwt/src/main/java/cn/dev33/satoken/jwt/StpLogicJwtForStateless.java
index 785114f7..658e8633 100644
--- a/sa-token-plugin/sa-token-jwt/src/main/java/cn/dev33/satoken/jwt/StpLogicJwtForStateless.java
+++ b/sa-token-plugin/sa-token-jwt/src/main/java/cn/dev33/satoken/jwt/StpLogicJwtForStateless.java
@@ -82,11 +82,13 @@ public class StpLogicJwtForStateless extends StpLogic {
// ------------------- 登录相关操作 -------------------
/**
- * 会话登录,并指定所有登录参数Model
+ * 创建指定账号id的登录会话
+ * @param id 登录id,建议的类型:(long | int | String)
+ * @param loginModel 此次登录的参数Model
+ * @return 返回会话令牌
*/
@Override
- public void login(Object id, SaLoginModel loginModel) {
-
+ public String createLoginSession(Object id, SaLoginModel loginModel) {
SaTokenException.throwByNull(id, "账号id不能为空");
// ------ 1、初始化 loginModel
@@ -95,11 +97,10 @@ public class StpLogicJwtForStateless extends StpLogic {
// ------ 2、生成一个token
String tokenValue = createTokenValue(id, loginModel.getDeviceOrDefault(), loginModel.getTimeout(), loginModel.getExtraData());
- // 3、在当前会话写入tokenValue
- setTokenValue(tokenValue, loginModel.getCookieTimeout());
-
// $$ 通知监听器,账号xxx 登录成功
- SaManager.getSaTokenListener().doLogin(loginType, id, loginModel);
+ SaManager.getSaTokenListener().doLogin(loginType, id, tokenValue, loginModel);
+
+ return tokenValue;
}
/**