diff --git a/README.md b/README.md index bbbe54c3..9bbadb78 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@

logo

-

sa-token v1.11.0

+

sa-token v1.12.0

这可能是史上功能最全的Java权限认证框架!

- + @@ -71,6 +71,7 @@ StpUtil.getSessionByLoginId(10001); // 获取账号id为10001的Session StpUtil.getTokenValueByLoginId(10001); // 获取账号id为10001的token令牌值 StpUtil.setLoginId(10001, "PC"); // 指定设备标识登录 StpUtil.logoutByLoginId(10001, "PC"); // 指定设备标识进行强制注销 (不同端不受影响) +StpUtil.switchTo(10044); // 将当前会话身份临时切换为其它账号 ``` sa-token的API众多,请恕此处无法为您逐一展示,更多示例请戳官方在线文档 diff --git a/pom.xml b/pom.xml index 0bca6349..b994fa2f 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ cn.dev33 sa-token-parent pom - 1.11.0 + 1.12.0 sa-token diff --git a/sa-token-core/pom.xml b/sa-token-core/pom.xml index 594da863..c36d793d 100644 --- a/sa-token-core/pom.xml +++ b/sa-token-core/pom.xml @@ -7,7 +7,7 @@ cn.dev33 sa-token-parent - 1.11.0 + 1.12.0 jar 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 89a7441d..34ab94d0 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 @@ -95,8 +95,8 @@ public class StpLogic { String tokenValue = null; // 1. 尝试从request里读取 - if(request.getAttribute(getJustCreatedSaveKey()) != null) { - tokenValue = String.valueOf(request.getAttribute(getJustCreatedSaveKey())); + if(request.getAttribute(getKeyJustCreatedSave()) != null) { + tokenValue = String.valueOf(request.getAttribute(getKeyJustCreatedSave())); } // 2. 尝试从请求体里面读取 if(tokenValue == null && config.getIsReadBody() == true){ @@ -201,7 +201,7 @@ public class StpLogic { // ------ 4. 持久化其它数据 dao.setValue(getKeyTokenValue(tokenValue), String.valueOf(loginId), config.getTimeout()); // token -> uid - request.setAttribute(getJustCreatedSaveKey(), tokenValue); // 将token保存到本次request里 + request.setAttribute(getKeyJustCreatedSave(), tokenValue); // 将token保存到本次request里 setLastActivityToNow(tokenValue); // 写入 [最后操作时间] if(config.getIsReadCookie() == true){ // cookie注入 SaTokenManager.getSaTokenCookie().addCookie(SaTokenManager.getSaTokenServlet().getResponse(), getTokenName(), tokenValue, "/", (int)config.getTimeout()); @@ -554,7 +554,7 @@ public class StpLogic { if(tokenValue == null || Objects.equals(tokenValue, "")) { // 随机一个token送给ta tokenValue = createTokenValue(null); - SaTokenManager.getSaTokenServlet().getRequest().setAttribute(getJustCreatedSaveKey(), tokenValue); + SaTokenManager.getSaTokenServlet().getRequest().setAttribute(getKeyJustCreatedSave(), tokenValue); setLastActivityToNow(tokenValue); // 写入 [最后操作时间] if(getConfig().getIsReadCookie() == true){ // cookie注入 SaTokenManager.getSaTokenCookie().addCookie(SaTokenManager.getSaTokenServlet().getResponse(), getTokenName(), tokenValue, "/", (int)getConfig().getTimeout()); @@ -1059,6 +1059,7 @@ public class StpLogic { /** * 在进行身份切换时,使用的存储key + * @return key */ public String getKeySwitch() { return SaTokenConsts.SWITCH_TO_SAVE_KEY + getLoginKey(); @@ -1066,8 +1067,9 @@ public class StpLogic { /** * 如果token为本次请求新创建的,则以此字符串为key存储在当前request中 + * @return key */ - public String getJustCreatedSaveKey() { + public String getKeyJustCreatedSave() { return SaTokenConsts.JUST_CREATED_SAVE_KEY + getLoginKey(); } @@ -1164,6 +1166,7 @@ public class StpLogic { /** * 当前是否正处于[身份临时切换]中 + * @return 是否正处于[身份临时切换]中 */ public boolean isSwitch() { return SaTokenManager.getSaTokenServlet().getRequest().getAttribute(getKeySwitch()) != null; @@ -1171,6 +1174,7 @@ public class StpLogic { /** * 返回[身份临时切换]的loginId + * @return 返回[身份临时切换]的loginId */ public Object getSwitchLoginId() { return SaTokenManager.getSaTokenServlet().getRequest().getAttribute(getKeySwitch()); @@ -1179,6 +1183,7 @@ public class StpLogic { /** * 在一个代码段里方法内,临时切换身份为指定loginId * @param loginId 指定loginId + * @param function 要执行的方法 */ public void switchTo(Object loginId, SaFunction function) { try { diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpUtil.java b/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpUtil.java index 6e9219ca..58376288 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpUtil.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/stp/StpUtil.java @@ -506,14 +506,16 @@ public class StpUtil { /** * 当前是否正处于[身份临时切换]中 + * @return 是否正处于[身份临时切换]中 */ public static boolean isSwitch() { return stpLogic.isSwitch(); } - + /** - * 在一个代码段里方法内,临时切换身份为指定loginId + * 在一个代码段里方法内,临时切换身份为指定loginId * @param loginId 指定loginId + * @param function 要执行的方法 */ public static void switchTo(Object loginId, SaFunction function) { stpLogic.switchTo(loginId, function); diff --git a/sa-token-core/src/main/java/cn/dev33/satoken/util/SaTokenConsts.java b/sa-token-core/src/main/java/cn/dev33/satoken/util/SaTokenConsts.java index ea2efb25..585859f3 100644 --- a/sa-token-core/src/main/java/cn/dev33/satoken/util/SaTokenConsts.java +++ b/sa-token-core/src/main/java/cn/dev33/satoken/util/SaTokenConsts.java @@ -10,7 +10,7 @@ public class SaTokenConsts { /** * sa-token 版本号 */ - public static final String VERSION_NO = "v1.11.0"; + public static final String VERSION_NO = "v1.12.0"; /** * sa-token 开源地址 diff --git a/sa-token-dao-redis-jackson/pom.xml b/sa-token-dao-redis-jackson/pom.xml index 7e09a657..5140feed 100644 --- a/sa-token-dao-redis-jackson/pom.xml +++ b/sa-token-dao-redis-jackson/pom.xml @@ -7,7 +7,7 @@ cn.dev33 sa-token-parent - 1.11.0 + 1.12.0 jar @@ -20,7 +20,7 @@ cn.dev33 sa-token-spring-boot-starter - 1.11.0 + 1.12.0 diff --git a/sa-token-dao-redis/pom.xml b/sa-token-dao-redis/pom.xml index edd7b7ba..80ed5360 100644 --- a/sa-token-dao-redis/pom.xml +++ b/sa-token-dao-redis/pom.xml @@ -7,7 +7,7 @@ cn.dev33 sa-token-parent - 1.11.0 + 1.12.0 jar @@ -20,7 +20,7 @@ cn.dev33 sa-token-spring-boot-starter - 1.11.0 + 1.12.0 diff --git a/sa-token-demo-jwt/pom.xml b/sa-token-demo-jwt/pom.xml index 9f45cdd1..028ab206 100644 --- a/sa-token-demo-jwt/pom.xml +++ b/sa-token-demo-jwt/pom.xml @@ -29,7 +29,7 @@ cn.dev33 sa-token-spring-boot-starter - 1.11.0 + 1.12.0 @@ -43,14 +43,14 @@ @@ -63,7 +63,7 @@ diff --git a/sa-token-demo-jwt/src/main/java/com/pj/satoken/jwt/SaTokenJwtUtil.java b/sa-token-demo-jwt/src/main/java/com/pj/satoken/jwt/SaTokenJwtUtil.java index 8bf0161b..adf1eb96 100644 --- a/sa-token-demo-jwt/src/main/java/com/pj/satoken/jwt/SaTokenJwtUtil.java +++ b/sa-token-demo-jwt/src/main/java/com/pj/satoken/jwt/SaTokenJwtUtil.java @@ -128,7 +128,7 @@ public class SaTokenJwtUtil { SaTokenConfig config = getConfig(); // ------ 2、生成一个token String tokenValue = createTokenValue(loginId); - request.setAttribute(SaTokenConsts.JUST_CREATED_SAVE_KEY, tokenValue); // 将token保存到本次request里 + request.setAttribute(getKeyJustCreatedSave(), tokenValue); // 将token保存到本次request里 if(config.getIsReadCookie() == true){ // cookie注入 SaTokenManager.getSaTokenCookie().addCookie(SaTokenManager.getSaTokenServlet().getResponse(), getTokenName(), tokenValue, "/", (int)config.getTimeout()); } diff --git a/sa-token-demo-springboot/pom.xml b/sa-token-demo-springboot/pom.xml index 13a099c6..0ee8666f 100644 --- a/sa-token-demo-springboot/pom.xml +++ b/sa-token-demo-springboot/pom.xml @@ -29,21 +29,21 @@ cn.dev33 sa-token-spring-boot-starter - 1.11.0 + 1.12.0 @@ -56,7 +56,7 @@ diff --git a/sa-token-demo-springboot/src/main/java/com/pj/SaTokenDemoApplication.java b/sa-token-demo-springboot/src/main/java/com/pj/SaTokenDemoApplication.java index 0d590e86..61e902b8 100644 --- a/sa-token-demo-springboot/src/main/java/com/pj/SaTokenDemoApplication.java +++ b/sa-token-demo-springboot/src/main/java/com/pj/SaTokenDemoApplication.java @@ -11,7 +11,6 @@ public class SaTokenDemoApplication { public static void main(String[] args) { SpringApplication.run(SaTokenDemoApplication.class, args); System.out.println("\n启动成功:sa-token配置如下:" + SaTokenManager.getConfig()); - } } \ No newline at end of file diff --git a/sa-token-doc/doc/README.md b/sa-token-doc/doc/README.md index bbbe54c3..9bbadb78 100644 --- a/sa-token-doc/doc/README.md +++ b/sa-token-doc/doc/README.md @@ -1,11 +1,11 @@

logo

-

sa-token v1.11.0

+

sa-token v1.12.0

这可能是史上功能最全的Java权限认证框架!

- + @@ -71,6 +71,7 @@ StpUtil.getSessionByLoginId(10001); // 获取账号id为10001的Session StpUtil.getTokenValueByLoginId(10001); // 获取账号id为10001的token令牌值 StpUtil.setLoginId(10001, "PC"); // 指定设备标识登录 StpUtil.logoutByLoginId(10001, "PC"); // 指定设备标识进行强制注销 (不同端不受影响) +StpUtil.switchTo(10044); // 将当前会话身份临时切换为其它账号 ``` sa-token的API众多,请恕此处无法为您逐一展示,更多示例请戳官方在线文档 diff --git a/sa-token-doc/doc/index.html b/sa-token-doc/doc/index.html index e5614bc5..7166aaa9 100644 --- a/sa-token-doc/doc/index.html +++ b/sa-token-doc/doc/index.html @@ -22,6 +22,7 @@