From f35dbc92414ff259415c0811f29efc03842b97d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90li?= <15040126243@163.com> Date: Tue, 11 Jan 2022 10:40:15 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BB=A3=E7=A0=81=E7=BB=86=E8=8A=82?= =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E5=88=86=E7=A6=BB=20ServletUtils=20?= =?UTF-8?q?=E7=8B=AC=E7=AB=8B=20WebFluxUtils=20=E8=A7=A3=E8=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/FUNDING.yml | 1 - config/dev/ruoyi-system.yml | 2 +- .../ruoyi/common/core/utils/ServletUtils.java | 60 ---------------- ruoyi-common/ruoyi-common-security/pom.xml | 10 +-- .../com/ruoyi/gateway/filter/AuthFilter.java | 3 +- .../gateway/filter/BlackListUrlFilter.java | 4 +- .../gateway/filter/ValidateCodeFilter.java | 4 +- .../handler/GatewayExceptionHandler.java | 4 +- .../handler/SentinelFallbackHandler.java | 4 +- .../com/ruoyi/gateway/utils/WebFluxUtils.java | 72 +++++++++++++++++++ .../system/controller/SysUserController.java | 40 ----------- 11 files changed, 88 insertions(+), 116 deletions(-) delete mode 100644 .github/FUNDING.yml create mode 100644 ruoyi-gateway/src/main/java/com/ruoyi/gateway/utils/WebFluxUtils.java diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 06edc15f..00000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1 +0,0 @@ -custom: http://doc.ruoyi.vip/ruoyi-cloud/other/donate.html diff --git a/config/dev/ruoyi-system.yml b/config/dev/ruoyi-system.yml index 54fce90e..42c4928a 100644 --- a/config/dev/ruoyi-system.yml +++ b/config/dev/ruoyi-system.yml @@ -40,7 +40,7 @@ xxl: executor: # 执行器AppName:执行器心跳注册分组依据;为空则关闭自动注册 appname: ${spring.application.name}-executor - # 执行器端口号 执行器从19201开始往后写 + # 执行器端口号 执行器从19901开始往后写 port: 9901 # 执行器注册:默认IP:PORT address: diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ServletUtils.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ServletUtils.java index 556a05b3..a635e97e 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ServletUtils.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ServletUtils.java @@ -2,16 +2,9 @@ package com.ruoyi.common.core.utils; import cn.hutool.core.convert.Convert; import com.ruoyi.common.core.constant.Constants; -import com.ruoyi.common.core.domain.R; -import org.springframework.core.io.buffer.DataBuffer; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.server.reactive.ServerHttpResponse; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; -import reactor.core.publisher.Mono; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -206,57 +199,4 @@ public class ServletUtils { } } - /** - * 设置webflux模型响应 - * - * @param response ServerHttpResponse - * @param value 响应内容 - * @return Mono - */ - public static Mono webFluxResponseWriter(ServerHttpResponse response, Object value) { - return webFluxResponseWriter(response, HttpStatus.OK, value, R.FAIL); - } - - /** - * 设置webflux模型响应 - * - * @param response ServerHttpResponse - * @param code 响应状态码 - * @param value 响应内容 - * @return Mono - */ - public static Mono webFluxResponseWriter(ServerHttpResponse response, Object value, int code) { - return webFluxResponseWriter(response, HttpStatus.OK, value, code); - } - - /** - * 设置webflux模型响应 - * - * @param response ServerHttpResponse - * @param status http状态码 - * @param code 响应状态码 - * @param value 响应内容 - * @return Mono - */ - public static Mono webFluxResponseWriter(ServerHttpResponse response, HttpStatus status, Object value, int code) { - return webFluxResponseWriter(response, MediaType.APPLICATION_JSON_VALUE, status, value, code); - } - - /** - * 设置webflux模型响应 - * - * @param response ServerHttpResponse - * @param contentType content-type - * @param status http状态码 - * @param code 响应状态码 - * @param value 响应内容 - * @return Mono - */ - public static Mono webFluxResponseWriter(ServerHttpResponse response, String contentType, HttpStatus status, Object value, int code) { - response.setStatusCode(status); - response.getHeaders().add(HttpHeaders.CONTENT_TYPE, contentType); - R result = R.fail(code, value.toString()); - DataBuffer dataBuffer = response.bufferFactory().wrap(JsonUtils.toJsonString(result).getBytes()); - return response.writeWith(Mono.just(dataBuffer)); - } } diff --git a/ruoyi-common/ruoyi-common-security/pom.xml b/ruoyi-common/ruoyi-common-security/pom.xml index 1de2b853..9a375d58 100644 --- a/ruoyi-common/ruoyi-common-security/pom.xml +++ b/ruoyi-common/ruoyi-common-security/pom.xml @@ -34,11 +34,11 @@ ruoyi-common-redis - - com.ruoyi - ruoyi-common-dubbo - provided - + + + + + diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java index 21169cfa..9dd6703b 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java @@ -10,6 +10,7 @@ import com.ruoyi.common.core.utils.ServletUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.redis.utils.RedisUtils; import com.ruoyi.gateway.config.properties.IgnoreWhiteProperties; +import com.ruoyi.gateway.utils.WebFluxUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -87,7 +88,7 @@ public class AuthFilter implements GlobalFilter, Ordered { private Mono unauthorizedResponse(ServerWebExchange exchange, String msg) { log.error("[鉴权异常处理]请求路径:{}", exchange.getRequest().getPath()); - return ServletUtils.webFluxResponseWriter(exchange.getResponse(), msg, HttpStatus.UNAUTHORIZED); + return WebFluxUtils.webFluxResponseWriter(exchange.getResponse(), msg, HttpStatus.UNAUTHORIZED); } /** diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/BlackListUrlFilter.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/BlackListUrlFilter.java index 9af325e9..dc7346c0 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/BlackListUrlFilter.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/BlackListUrlFilter.java @@ -1,6 +1,6 @@ package com.ruoyi.gateway.filter; -import com.ruoyi.common.core.utils.ServletUtils; +import com.ruoyi.gateway.utils.WebFluxUtils; import org.springframework.cloud.gateway.filter.GatewayFilter; import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory; import org.springframework.stereotype.Component; @@ -22,7 +22,7 @@ public class BlackListUrlFilter extends AbstractGatewayFilterFactory { Map obj = JsonUtils.parseMap(rspStr); validateCodeService.checkCapcha(obj.get(CODE), obj.get(UUID)); } catch (Exception e) { - return ServletUtils.webFluxResponseWriter(exchange.getResponse(), e.getMessage()); + return WebFluxUtils.webFluxResponseWriter(exchange.getResponse(), e.getMessage()); } return chain.filter(exchange); }; diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/GatewayExceptionHandler.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/GatewayExceptionHandler.java index 3d2171fc..3a05cdd7 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/GatewayExceptionHandler.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/GatewayExceptionHandler.java @@ -1,6 +1,6 @@ package com.ruoyi.gateway.handler; -import com.ruoyi.common.core.utils.ServletUtils; +import com.ruoyi.gateway.utils.WebFluxUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.web.reactive.error.ErrorWebExceptionHandler; import org.springframework.cloud.gateway.support.NotFoundException; @@ -42,6 +42,6 @@ public class GatewayExceptionHandler implements ErrorWebExceptionHandler { log.error("[网关异常处理]请求路径:{},异常信息:{}", exchange.getRequest().getPath(), ex.getMessage()); - return ServletUtils.webFluxResponseWriter(response, msg); + return WebFluxUtils.webFluxResponseWriter(response, msg); } } \ No newline at end of file diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/SentinelFallbackHandler.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/SentinelFallbackHandler.java index 8b5595f4..17b78708 100644 --- a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/SentinelFallbackHandler.java +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/handler/SentinelFallbackHandler.java @@ -2,7 +2,7 @@ package com.ruoyi.gateway.handler; import com.alibaba.csp.sentinel.adapter.gateway.sc.callback.GatewayCallbackManager; import com.alibaba.csp.sentinel.slots.block.BlockException; -import com.ruoyi.common.core.utils.ServletUtils; +import com.ruoyi.gateway.utils.WebFluxUtils; import org.springframework.web.reactive.function.server.ServerResponse; import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.WebExceptionHandler; @@ -15,7 +15,7 @@ import reactor.core.publisher.Mono; */ public class SentinelFallbackHandler implements WebExceptionHandler { private Mono writeResponse(ServerResponse response, ServerWebExchange exchange) { - return ServletUtils.webFluxResponseWriter(exchange.getResponse(), "请求超过最大数,请稍候再试"); + return WebFluxUtils.webFluxResponseWriter(exchange.getResponse(), "请求超过最大数,请稍候再试"); } @Override diff --git a/ruoyi-gateway/src/main/java/com/ruoyi/gateway/utils/WebFluxUtils.java b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/utils/WebFluxUtils.java new file mode 100644 index 00000000..2de11e5c --- /dev/null +++ b/ruoyi-gateway/src/main/java/com/ruoyi/gateway/utils/WebFluxUtils.java @@ -0,0 +1,72 @@ +package com.ruoyi.gateway.utils; + +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.JsonUtils; +import org.springframework.core.io.buffer.DataBuffer; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.server.reactive.ServerHttpResponse; +import reactor.core.publisher.Mono; + +/** + * WebFlux 工具类 + * + * @author Lion Li + */ +public class WebFluxUtils { + + /** + * 设置webflux模型响应 + * + * @param response ServerHttpResponse + * @param value 响应内容 + * @return Mono + */ + public static Mono webFluxResponseWriter(ServerHttpResponse response, Object value) { + return webFluxResponseWriter(response, HttpStatus.OK, value, R.FAIL); + } + + /** + * 设置webflux模型响应 + * + * @param response ServerHttpResponse + * @param code 响应状态码 + * @param value 响应内容 + * @return Mono + */ + public static Mono webFluxResponseWriter(ServerHttpResponse response, Object value, int code) { + return webFluxResponseWriter(response, HttpStatus.OK, value, code); + } + + /** + * 设置webflux模型响应 + * + * @param response ServerHttpResponse + * @param status http状态码 + * @param code 响应状态码 + * @param value 响应内容 + * @return Mono + */ + public static Mono webFluxResponseWriter(ServerHttpResponse response, HttpStatus status, Object value, int code) { + return webFluxResponseWriter(response, MediaType.APPLICATION_JSON_VALUE, status, value, code); + } + + /** + * 设置webflux模型响应 + * + * @param response ServerHttpResponse + * @param contentType content-type + * @param status http状态码 + * @param code 响应状态码 + * @param value 响应内容 + * @return Mono + */ + public static Mono webFluxResponseWriter(ServerHttpResponse response, String contentType, HttpStatus status, Object value, int code) { + response.setStatusCode(status); + response.getHeaders().add(HttpHeaders.CONTENT_TYPE, contentType); + R result = R.fail(code, value.toString()); + DataBuffer dataBuffer = response.bufferFactory().wrap(JsonUtils.toJsonString(result).getBytes()); + return response.writeWith(Mono.just(dataBuffer)); + } +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java index c19bcedc..dc51340b 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java @@ -1,7 +1,6 @@ package com.ruoyi.system.controller; import com.ruoyi.common.core.constant.UserConstants; -import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.poi.ExcelUtil; import com.ruoyi.common.core.web.controller.BaseController; @@ -9,12 +8,10 @@ import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.TableDataInfo; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; -import com.ruoyi.common.security.annotation.InnerAuth; import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.domain.SysRole; import com.ruoyi.system.api.domain.SysUser; -import com.ruoyi.system.api.model.LoginUser; import com.ruoyi.system.service.*; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.ArrayUtils; @@ -82,43 +79,6 @@ public class SysUserController extends BaseController { util.importTemplateExcel(response, "用户数据"); } - /** - * 获取当前用户信息 - */ - @InnerAuth - @GetMapping("/info/{username}") - public R info(@PathVariable("username") String username) { - SysUser sysUser = userService.selectUserByUserName(username); - if (StringUtils.isNull(sysUser)) { - return R.fail("用户名或密码错误"); - } - // 角色集合 - Set roles = permissionService.getRolePermission(sysUser.getUserId()); - // 权限集合 - Set permissions = permissionService.getMenuPermission(sysUser.getUserId()); - LoginUser sysUserVo = new LoginUser(); - sysUserVo.setSysUser(sysUser); - sysUserVo.setRoles(roles); - sysUserVo.setPermissions(permissions); - return R.ok(sysUserVo); - } - - /** - * 注册用户信息 - */ - @InnerAuth - @PostMapping("/register") - public R register(@RequestBody SysUser sysUser) { - String username = sysUser.getUserName(); - if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser")))) { - return R.fail("当前系统没有开启注册功能!"); - } - if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(username))) { - return R.fail("保存用户'" + username + "'失败,注册账号已存在"); - } - return R.ok(userService.registerUser(sysUser)); - } - /** * 获取用户信息 *