From 39b29ec15e5edc002c99d6c13a386a8f1efc34f5 Mon Sep 17 00:00:00 2001 From: fengshuonan Date: Mon, 7 Aug 2023 21:23:55 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=908.0=E3=80=91=E3=80=90sys=E3=80=91?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=8E=B7=E5=8F=96=E5=BD=93=E5=89=8D=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E7=94=A8=E6=88=B7=E7=9A=84=E8=BF=9C=E7=A8=8B=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E6=8F=90=E4=BE=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../exception/enums/UserExceptionEnum.java | 7 +- .../login/provider/LoginUserProvider.java | 67 +++++++++++++++++++ 2 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/login/provider/LoginUserProvider.java diff --git a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/exception/enums/UserExceptionEnum.java b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/exception/enums/UserExceptionEnum.java index 4c37fe432..39cff197f 100644 --- a/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/exception/enums/UserExceptionEnum.java +++ b/kernel-s-system/system-api/src/main/java/cn/stylefeng/roses/kernel/sys/api/exception/enums/UserExceptionEnum.java @@ -31,7 +31,12 @@ public enum UserExceptionEnum implements AbstractExceptionEnum { /** * 无法操作,只有超级管理员可以踢下线用户 */ - KICK_OFF_ERROR(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10004", "无法操作,只有超级管理员可以踢下线用户"); + KICK_OFF_ERROR(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10004", "无法操作,只有超级管理员可以踢下线用户"), + + /** + * 获取用户失败,参数缺失:用户token + */ + TOKEN_EMPTY_ERROR(RuleConstants.USER_OPERATION_ERROR_TYPE_CODE + "10005", "获取用户失败,参数缺失:用户token"); /** * 错误编码 diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/login/provider/LoginUserProvider.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/login/provider/LoginUserProvider.java new file mode 100644 index 000000000..d1f64667e --- /dev/null +++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/login/provider/LoginUserProvider.java @@ -0,0 +1,67 @@ +/* + * Copyright [2020-2030] [https://www.stylefeng.cn] + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点: + * + * 1.请不要删除和修改根目录下的LICENSE文件。 + * 2.请不要删除和修改Guns源码头部的版权声明。 + * 3.请保留源码和相关描述文件的项目出处,作者声明等。 + * 4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns + * 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns + * 6.若您的项目无法满足以上几点,可申请商业授权 + */ +package cn.stylefeng.roses.kernel.sys.modular.login.provider; + +import cn.hutool.core.util.StrUtil; +import cn.stylefeng.roses.kernel.auth.api.SessionManagerApi; +import cn.stylefeng.roses.kernel.auth.api.loginuser.api.LoginUserRemoteApi; +import cn.stylefeng.roses.kernel.auth.api.loginuser.pojo.LoginUserRequest; +import cn.stylefeng.roses.kernel.auth.api.loginuser.pojo.SessionValidateResponse; +import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser; +import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException; +import cn.stylefeng.roses.kernel.sys.api.exception.enums.UserExceptionEnum; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * 获取当前登录用户的远程服务提供 + * + * @author fengshuonan + * @since 2023/8/7 21:23 + */ +@RestController +public class LoginUserProvider implements LoginUserRemoteApi { + + @Resource + private SessionManagerApi sessionManagerApi; + + @Override + public LoginUser getLoginUserByToken(@RequestBody LoginUserRequest loginUserRequest) { + if (StrUtil.isBlank(loginUserRequest.getToken())) { + throw new ServiceException(UserExceptionEnum.TOKEN_EMPTY_ERROR); + } + return sessionManagerApi.getSession(loginUserRequest.getToken()); + } + + @Override + public SessionValidateResponse haveSession(@RequestParam("token") String token) { + boolean validateFlag = sessionManagerApi.haveSession(token); + return new SessionValidateResponse(validateFlag); + } + +}