diff --git a/iot-common/iot-common-satoken/src/main/java/cc/iotkit/common/satoken/config/SaTokenConfig.java b/iot-common/iot-common-satoken/src/main/java/cc/iotkit/common/satoken/config/SaTokenConfig.java index 06471950..c5d0733d 100644 --- a/iot-common/iot-common-satoken/src/main/java/cc/iotkit/common/satoken/config/SaTokenConfig.java +++ b/iot-common/iot-common-satoken/src/main/java/cc/iotkit/common/satoken/config/SaTokenConfig.java @@ -46,7 +46,7 @@ public class SaTokenConfig implements WebMvcConfigurer { List swaggerUrls = List.of("/doc.html","/favicon.ico", "/webjars/**", "/resources/**" , "/swagger-resources/**", "/swagger-ui.html/**"); - List loginUrls = List.of("/code", "/auth/tenant/list", "/auth/login"); + List loginUrls = List.of("/code", "/auth/tenant/list", "/auth/login", "/auth/logout"); List openApiUrls = List.of( "/openapi/v1/getToken"); List excludeUrls = new ArrayList<>(); diff --git a/iot-common/iot-common-satoken/src/main/java/cc/iotkit/common/satoken/utils/LoginHelper.java b/iot-common/iot-common-satoken/src/main/java/cc/iotkit/common/satoken/utils/LoginHelper.java index 07a7fa34..cb1ca8fe 100644 --- a/iot-common/iot-common-satoken/src/main/java/cc/iotkit/common/satoken/utils/LoginHelper.java +++ b/iot-common/iot-common-satoken/src/main/java/cc/iotkit/common/satoken/utils/LoginHelper.java @@ -4,10 +4,12 @@ import cc.iotkit.common.constant.TenantConstants; import cc.iotkit.common.constant.UserConstants; import cc.iotkit.common.enums.DeviceType; import cc.iotkit.common.enums.UserType; +import cc.iotkit.common.exception.BizException; import cc.iotkit.common.undefined.LoginUser; import cn.dev33.satoken.context.SaHolder; import cn.dev33.satoken.context.model.SaStorage; import cn.dev33.satoken.exception.InvalidContextException; +import cn.dev33.satoken.session.SaSession; import cn.dev33.satoken.stp.SaLoginModel; import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.util.ObjectUtil; @@ -76,7 +78,11 @@ public class LoginHelper { if (loginUser != null) { return loginUser; } - loginUser = (LoginUser) StpUtil.getTokenSession().get(LOGIN_USER_KEY); + SaSession tokenSession = StpUtil.getTokenSession(); + if(tokenSession == null){ + return null; + } + loginUser = (LoginUser) tokenSession.get(LOGIN_USER_KEY); SaHolder.getStorage().set(LOGIN_USER_KEY, loginUser); return loginUser; } diff --git a/iot-starter/src/main/java/cc/iotkit/web/service/SysLoginService.java b/iot-starter/src/main/java/cc/iotkit/web/service/SysLoginService.java index eddc4328..a0f86750 100644 --- a/iot-starter/src/main/java/cc/iotkit/web/service/SysLoginService.java +++ b/iot-starter/src/main/java/cc/iotkit/web/service/SysLoginService.java @@ -174,6 +174,9 @@ public class SysLoginService { public void logout() { try { LoginUser loginUser = LoginHelper.getLoginUser(); + if(loginUser==null){ + return; + } if (LoginHelper.isSuperAdmin()) { // 超级管理员 登出清除动态租户 TenantHelper.clearDynamic();