pom.xml
@@ -17,10 +17,10 @@ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-boot.version>2.3.7.RELEASE</spring-boot.version> <spring-cloud.version>Hoxton.SR9</spring-cloud.version> <spring-cloud-alibaba.version>2.2.5.RELEASE</spring-cloud-alibaba.version> <spring-boot-admin.version>2.3.1</spring-boot-admin.version> <spring-boot.version>2.5.0</spring-boot.version> <spring-cloud.version>2020.0.2</spring-cloud.version> <spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version> <spring-boot-admin.version>2.4.1</spring-boot-admin.version> <spring-boot.mybatis>2.1.4</spring-boot.mybatis> <swagger.fox.version>2.9.2</swagger.fox.version> <swagger.core.version>1.5.24</swagger.core.version> @@ -28,12 +28,12 @@ <kaptcha.version>2.3.2</kaptcha.version> <pagehelper.boot.version>1.3.0</pagehelper.boot.version> <druid.version>1.2.6</druid.version> <dynamic-ds.version>3.2.1</dynamic-ds.version> <dynamic-ds.version>3.3.2</dynamic-ds.version> <commons.io.version>2.5</commons.io.version> <commons.fileupload.version>1.3.3</commons.fileupload.version> <velocity.version>1.7</velocity.version> <fastjson.version>1.2.76</fastjson.version> <minio.version>8.0.3</minio.version> <minio.version>8.2.1</minio.version> <poi.version>4.1.2</poi.version> <common-pool.version>2.6.2</common-pool.version> </properties> @@ -234,7 +234,11 @@ <packaging>pom</packaging> <dependencies> <!-- bootstrap 启动器 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency> </dependencies> <build> ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteFileFallbackFactory.java
@@ -2,12 +2,12 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.RemoteFileService; import com.ruoyi.system.api.domain.SysFile; import feign.hystrix.FallbackFactory; /** * 文件服务降级处理 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteLogFallbackFactory.java
@@ -2,11 +2,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.RemoteLogService; import com.ruoyi.system.api.domain.SysOperLog; import feign.hystrix.FallbackFactory; /** * 日志服务降级处理 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java
@@ -2,11 +2,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.RemoteUserService; import com.ruoyi.system.api.model.LoginUser; import feign.hystrix.FallbackFactory; /** * 用户服务降级处理 ruoyi-common/ruoyi-common-core/pom.xml
@@ -23,6 +23,12 @@ <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <!-- SpringCloud Loadbalancer --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-loadbalancer</artifactId> </dependency> <!-- Spring Context Support --> <dependency> <groupId>org.springframework</groupId> ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/StringUtils.java
@@ -237,6 +237,30 @@ } /** * 判断是否为空,并且不是空白字符 * * @param str 要判断的value * @return 结果 */ public static boolean hasText(String str) { return (str != null && !str.isEmpty() && containsText(str)); } private static boolean containsText(CharSequence str) { int strLen = str.length(); for (int i = 0; i < strLen; i++) { if (!Character.isWhitespace(str.charAt(i))) { return true; } } return false; } /** * 格式化文本, {} 表示占位符<br> * 此方法只是简单将占位符 {} 按照顺序替换为参数<br> * 如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可<br> ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/aspect/PreAuthorizeAspect.java
@@ -11,8 +11,8 @@ import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; import org.springframework.util.PatternMatchUtils; import org.springframework.util.StringUtils; import com.ruoyi.common.core.exception.PreAuthorizeException; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.security.annotation.PreAuthorize; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.system.api.model.LoginUser; @@ -50,7 +50,7 @@ return point.proceed(); } if (!StringUtils.isEmpty(annotation.hasPermi())) if (StringUtils.isNotEmpty(annotation.hasPermi())) { if (hasPermi(annotation.hasPermi())) { @@ -58,7 +58,7 @@ } throw new PreAuthorizeException(); } else if (!StringUtils.isEmpty(annotation.lacksPermi())) else if (StringUtils.isNotEmpty(annotation.lacksPermi())) { if (lacksPermi(annotation.lacksPermi())) { @@ -74,7 +74,7 @@ } throw new PreAuthorizeException(); } else if (!StringUtils.isEmpty(annotation.hasRole())) else if (StringUtils.isNotEmpty(annotation.hasRole())) { if (hasRole(annotation.hasRole())) { @@ -82,7 +82,7 @@ } throw new PreAuthorizeException(); } else if (!StringUtils.isEmpty(annotation.lacksRole())) else if (StringUtils.isNotEmpty(annotation.lacksRole())) { if (lacksRole(annotation.lacksRole())) { @@ -111,7 +111,7 @@ public boolean hasPermi(String permission) { LoginUser userInfo = tokenService.getLoginUser(); if (StringUtils.isEmpty(userInfo) || CollectionUtils.isEmpty(userInfo.getPermissions())) if (StringUtils.isNull(userInfo) || CollectionUtils.isEmpty(userInfo.getPermissions())) { return false; } @@ -138,7 +138,7 @@ public boolean hasAnyPermi(String[] permissions) { LoginUser userInfo = tokenService.getLoginUser(); if (StringUtils.isEmpty(userInfo) || CollectionUtils.isEmpty(userInfo.getPermissions())) if (StringUtils.isNull(userInfo) || CollectionUtils.isEmpty(userInfo.getPermissions())) { return false; } @@ -162,7 +162,7 @@ public boolean hasRole(String role) { LoginUser userInfo = tokenService.getLoginUser(); if (StringUtils.isEmpty(userInfo) || CollectionUtils.isEmpty(userInfo.getRoles())) if (StringUtils.isNull(userInfo) || CollectionUtils.isEmpty(userInfo.getRoles())) { return false; } @@ -196,7 +196,7 @@ public boolean hasAnyRoles(String[] roles) { LoginUser userInfo = tokenService.getLoginUser(); if (StringUtils.isEmpty(userInfo) || CollectionUtils.isEmpty(userInfo.getRoles())) if (StringUtils.isNull(userInfo) || CollectionUtils.isEmpty(userInfo.getRoles())) { return false; } @@ -220,6 +220,6 @@ private boolean hasPermissions(Collection<String> authorities, String permission) { return authorities.stream().filter(StringUtils::hasText) .anyMatch(x -> ALL_PERMISSION.contains(x) || PatternMatchUtils.simpleMatch(permission, x)); .anyMatch(x -> ALL_PERMISSION.contains(x) || PatternMatchUtils.simpleMatch(x, permission)); } } ruoyi-gateway/src/main/java/com/ruoyi/gateway/config/GatewayConfig.java
@@ -1,11 +1,9 @@ package com.ruoyi.gateway.config; import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; import com.alibaba.csp.sentinel.adapter.gateway.sc.SentinelGatewayFilter; import com.ruoyi.gateway.handler.SentinelFallbackHandler; /** @@ -21,12 +19,5 @@ public SentinelFallbackHandler sentinelGatewayExceptionHandler() { return new SentinelFallbackHandler(); } @Bean @Order(-1) public GlobalFilter sentinelGatewayFilter() { return new SentinelGatewayFilter(); } } ruoyi-modules/ruoyi-gen/src/main/java/com/ruoyi/gen/RuoYiGenApplication.java
@@ -1,7 +1,7 @@ package com.ruoyi.gen; import org.springframework.boot.SpringApplication; import org.springframework.cloud.client.SpringCloudApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import com.ruoyi.common.security.annotation.EnableCustomConfig; import com.ruoyi.common.security.annotation.EnableRyFeignClients; import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2; @@ -14,7 +14,7 @@ @EnableCustomConfig @EnableCustomSwagger2 @EnableRyFeignClients @SpringCloudApplication @SpringBootApplication public class RuoYiGenApplication { public static void main(String[] args) ruoyi-modules/ruoyi-job/src/main/java/com/ruoyi/job/RuoYiJobApplication.java
@@ -1,7 +1,7 @@ package com.ruoyi.job; import org.springframework.boot.SpringApplication; import org.springframework.cloud.client.SpringCloudApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import com.ruoyi.common.security.annotation.EnableCustomConfig; import com.ruoyi.common.security.annotation.EnableRyFeignClients; import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2; @@ -14,7 +14,7 @@ @EnableCustomConfig @EnableCustomSwagger2 @EnableRyFeignClients @SpringCloudApplication @SpringBootApplication public class RuoYiJobApplication { public static void main(String[] args) ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/RuoYiSystemApplication.java
@@ -1,7 +1,7 @@ package com.ruoyi.system; import org.springframework.boot.SpringApplication; import org.springframework.cloud.client.SpringCloudApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import com.ruoyi.common.security.annotation.EnableCustomConfig; import com.ruoyi.common.security.annotation.EnableRyFeignClients; import com.ruoyi.common.swagger.annotation.EnableCustomSwagger2; @@ -14,7 +14,7 @@ @EnableCustomConfig @EnableCustomSwagger2 @EnableRyFeignClients @SpringCloudApplication @SpringBootApplication public class RuoYiSystemApplication { public static void main(String[] args) ruoyi-visual/ruoyi-monitor/src/main/java/com/ruoyi/modules/monitor/RuoYiMonitorApplication.java
@@ -1,8 +1,8 @@ package com.ruoyi.modules.monitor; import de.codecentric.boot.admin.server.config.EnableAdminServer; import org.springframework.boot.SpringApplication; import org.springframework.cloud.client.SpringCloudApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import de.codecentric.boot.admin.server.config.EnableAdminServer; /** * 监控中心 @@ -10,7 +10,7 @@ * @author ruoyi */ @EnableAdminServer @SpringCloudApplication @SpringBootApplication public class RuoYiMonitorApplication { public static void main(String[] args)