修复动态创建 StpLogic 时不记录在全局 SaManager 的问题

This commit is contained in:
click33
2023-05-22 02:23:29 +08:00
parent 3e293ca5e0
commit 4496242626
4 changed files with 5 additions and 6 deletions

View File

@@ -35,6 +35,7 @@ import cn.dev33.satoken.stp.StpInterface;
import cn.dev33.satoken.stp.StpInterfaceDefaultImpl; import cn.dev33.satoken.stp.StpInterfaceDefaultImpl;
import cn.dev33.satoken.stp.StpLogic; import cn.dev33.satoken.stp.StpLogic;
import cn.dev33.satoken.stp.StpUtil; import cn.dev33.satoken.stp.StpUtil;
import cn.dev33.satoken.strategy.SaStrategy;
import cn.dev33.satoken.temp.SaTempDefaultImpl; import cn.dev33.satoken.temp.SaTempDefaultImpl;
import cn.dev33.satoken.temp.SaTempInterface; import cn.dev33.satoken.temp.SaTempInterface;
import cn.dev33.satoken.util.SaFoxUtil; import cn.dev33.satoken.util.SaFoxUtil;
@@ -322,9 +323,7 @@ public class SaManager {
synchronized (SaManager.class) { synchronized (SaManager.class) {
stpLogic = stpLogicMap.get(loginType); stpLogic = stpLogicMap.get(loginType);
if(stpLogic == null) { if(stpLogic == null) {
stpLogic = new StpLogic(loginType); stpLogic = SaStrategy.me.createStpLogic.apply(loginType);
// 此处无需手动put因为 StpLogic 构造方法中会自动put
// putStpLogic(stpLogic);
} }
} }
} }

View File

@@ -23,7 +23,7 @@ public class StpUserUtil {
/** /**
* 多账号体系下的类型标识 * 多账号体系下的类型标识
*/ */
public static final String TYPE = "login"; public static final String TYPE = "user";
/** /**
* 底层使用的 StpLogic 对象 * 底层使用的 StpLogic 对象

View File

@@ -14,7 +14,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
public class SaTokenApplication { public class SaTokenApplication {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(SaTokenApplication.class, args); SpringApplication.run(SaTokenApplication.class, args);
System.out.println("\n启动成功Sa-Token配置如下" + SaManager.getConfig()); System.out.println("\n启动成功Sa-Token配置如下" + SaManager.getConfig());
} }

View File

@@ -23,7 +23,7 @@ public class StpUserUtil {
/** /**
* 多账号体系下的类型标识 * 多账号体系下的类型标识
*/ */
public static final String TYPE = "login"; public static final String TYPE = "user";
/** /**
* 底层使用的 StpLogic 对象 * 底层使用的 StpLogic 对象