From c7d5392fbd8cab7323b3840cb68d379039ddd461 Mon Sep 17 00:00:00 2001 From: liuhanqing <447067298@qq.com> Date: Mon, 25 Jan 2021 23:23:51 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90message=E3=80=91=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E5=A2=9E=E5=8A=A0websocket?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kernel/auth/api/pojo/login/LoginUser.java | 22 +++++++++-- kernel-d-auth/auth-sdk/pom.xml | 8 ++++ .../kernel/auth/auth/AuthServiceImpl.java | 4 ++ .../kernel/db/flyway/FlywayInitListener.java | 22 ++++++++--- .../api/expander/WebSocketConfigExpander.java | 37 +++++++++++++++++++ .../starter/GunsMessageAutoConfiguration.java | 7 +++- 6 files changed, 90 insertions(+), 10 deletions(-) create mode 100644 kernel-s-message/message-api/src/main/java/cn/stylefeng/roses/kernel/message/api/expander/WebSocketConfigExpander.java 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