diff --git a/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/login/LoginUser.java b/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/login/LoginUser.java index 8f176d6f6..2755ddec3 100644 --- a/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/login/LoginUser.java +++ b/kernel-d-auth/auth-api/src/main/java/cn/stylefeng/roses/kernel/auth/api/pojo/login/LoginUser.java @@ -1,15 +1,15 @@ package cn.stylefeng.roses.kernel.auth.api.pojo.login; import cn.hutool.core.lang.Dict; +import cn.hutool.core.util.StrUtil; import cn.stylefeng.roses.kernel.auth.api.enums.DataScopeTypeEnum; import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleRoleInfo; import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleUserInfo; import lombok.Data; import java.io.Serializable; -import java.util.Date; -import java.util.List; -import java.util.Set; +import java.util.*; +import java.util.concurrent.atomic.AtomicReference; /** * 登录用户信息 @@ -89,4 +89,20 @@ public class LoginUser implements Serializable { */ private Dict otherInfos; + /** + * 用户的ws-url + */ + private String wsUrl; + + + public String getWsUrl(){ + AtomicReference returnUrl = new AtomicReference<>(StrUtil.EMPTY); + Optional.ofNullable(this.wsUrl).ifPresent(url -> { + Map user = new HashMap<>(1); + user.put("userId", this.userId); + returnUrl.set(StrUtil.format(url, user)); + }); + return returnUrl.get(); + } + } diff --git a/kernel-d-auth/auth-sdk/pom.xml b/kernel-d-auth/auth-sdk/pom.xml index 242798772..173b98e82 100644 --- a/kernel-d-auth/auth-sdk/pom.xml +++ b/kernel-d-auth/auth-sdk/pom.xml @@ -79,6 +79,14 @@ provided + + + + cn.stylefeng.roses + message-api + 1.0.0 + + diff --git a/kernel-d-auth/auth-sdk/src/main/java/cn/stylefeng/roses/kernel/auth/auth/AuthServiceImpl.java b/kernel-d-auth/auth-sdk/src/main/java/cn/stylefeng/roses/kernel/auth/auth/AuthServiceImpl.java index b9612f00c..8ccaa20f1 100644 --- a/kernel-d-auth/auth-sdk/src/main/java/cn/stylefeng/roses/kernel/auth/auth/AuthServiceImpl.java +++ b/kernel-d-auth/auth-sdk/src/main/java/cn/stylefeng/roses/kernel/auth/auth/AuthServiceImpl.java @@ -16,6 +16,7 @@ import cn.stylefeng.roses.kernel.jwt.api.context.JwtContext; import cn.stylefeng.roses.kernel.jwt.api.exception.JwtException; import cn.stylefeng.roses.kernel.jwt.api.exception.enums.JwtExceptionEnum; import cn.stylefeng.roses.kernel.jwt.api.pojo.payload.DefaultJwtPayload; +import cn.stylefeng.roses.kernel.message.api.expander.WebSocketConfigExpander; import cn.stylefeng.roses.kernel.rule.util.HttpServletUtil; import cn.stylefeng.roses.kernel.system.LoginLogServiceApi; import cn.stylefeng.roses.kernel.system.UserServiceApi; @@ -213,6 +214,9 @@ public class AuthServiceImpl implements AuthServiceApi { synchronized (SESSION_OPERATE_LOCK) { + // 8.1 获取ws-url 保存到用户信息中 + loginUser.setWsUrl(WebSocketConfigExpander.getWebSocketWsUrl()); + // 9. 缓存用户信息,创建会话 sessionManagerApi.createSession(jwtToken, loginUser); diff --git a/kernel-d-db/db-sdk-flyway/src/main/java/cn/stylefeng/roses/kernel/db/flyway/FlywayInitListener.java b/kernel-d-db/db-sdk-flyway/src/main/java/cn/stylefeng/roses/kernel/db/flyway/FlywayInitListener.java index 48ea59a5d..32ef1fb33 100644 --- a/kernel-d-db/db-sdk-flyway/src/main/java/cn/stylefeng/roses/kernel/db/flyway/FlywayInitListener.java +++ b/kernel-d-db/db-sdk-flyway/src/main/java/cn/stylefeng/roses/kernel/db/flyway/FlywayInitListener.java @@ -37,26 +37,38 @@ public class FlywayInitListener implements ApplicationListener