se-common/src/main/java/com/terra/common/annotation/Excel.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/annotation/Excels.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/configure/FastJson2JsonRedisSerializer.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/configure/RedisConfig.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/constant/CacheConstants.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/constant/GenConstants.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/constant/HttpStatus.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/constant/ScheduleConstants.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/constant/SecurityConstants.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/constant/ServiceNameConstants.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/constant/TokenConstants.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/constant/UserConstants.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/context/SecurityContextHolder.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/enums/UserStatus.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/exception/CaptchaException.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/exception/CheckedException.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/exception/DemoModeException.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/exception/GlobalException.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/exception/InnerAuthException.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/exception/PreAuthorizeException.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/exception/ServiceException.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/exception/UtilException.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/exception/auth/NotLoginException.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/exception/auth/NotPermissionException.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/exception/auth/NotRoleException.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/exception/base/BaseException.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/exception/file/FileException.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/exception/file/FileNameLengthLimitExceededException.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/exception/file/FileSizeLimitExceededException.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/exception/file/FileUploadException.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/exception/file/InvalidExtensionException.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/exception/job/TaskException.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/exception/user/CaptchaExpireException.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/exception/user/UserException.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/exception/user/UserPasswordNotMatchException.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/service/RedisService.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/utils/DateUtils.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/utils/ExceptionUtil.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/utils/JwtUtils.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/utils/PageUtils.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/utils/SpringUtils.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/utils/bean/BeanUtils.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/utils/bean/BeanValidators.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/utils/file/FileTypeUtils.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/utils/file/FileUtils.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/utils/file/ImageUtils.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/utils/file/MimeTypeUtils.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/utils/ip/IpUtils.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/utils/poi/ExcelHandlerAdapter.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/utils/poi/ExcelUtil.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/utils/reflect/ReflectUtils.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/utils/sign/Base64.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/utils/sql/SqlUtil.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/utils/uuid/IdUtils.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/utils/uuid/Seq.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/utils/uuid/UUID.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/web/controller/BaseController.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/web/domain/AjaxResult.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/web/domain/BaseEntity.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/web/domain/TreeEntity.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/web/page/PageDomain.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/web/page/TableDataInfo.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/web/page/TableSupport.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/xss/Xss.java
ÎļþÒÑɾ³ý se-common/src/main/java/com/terra/common/xss/XssValidator.java
ÎļþÒÑɾ³ý se-common/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -1,3 +0,0 @@ com.terra.common.utils.SpringUtils com.terra.common.service.RedisService com.terra.common.configure.RedisConfig se-gateway/pom.xml
@@ -58,12 +58,23 @@ <artifactId>spring-cloud-loadbalancer</artifactId> </dependency> <!-- se-common --> <!-- Springdoc --> <dependency> <groupId>com.terra</groupId> <artifactId>se-common</artifactId> <version>1.0.2</version> <scope>compile</scope> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-webflux-ui</artifactId> <version>${springdoc.version}</version> </dependency> <!-- Alibaba Fastjson --> <dependency> <groupId>com.alibaba.fastjson2</groupId> <artifactId>fastjson2</artifactId> </dependency> <!-- Java Servlet --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> </dependency> </dependencies> se-gateway/src/main/java/com/terra/gateway/config/SpringDocConfig.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,94 @@ package com.terra.gateway.config; import com.alibaba.nacos.client.naming.event.InstancesChangeEvent; import com.alibaba.nacos.common.notify.Event; import com.alibaba.nacos.common.notify.NotifyCenter; import com.alibaba.nacos.common.notify.listener.Subscriber; import com.terra.gateway.utils.StringUtils; import org.springdoc.core.AbstractSwaggerUiConfigProperties; import org.springdoc.core.SwaggerUiConfigProperties; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.context.annotation.Configuration; import java.util.Set; import java.util.stream.Collectors; /** * SpringDocé 置类 * * @author ruoyi */ @Configuration(proxyBeanMethods = false) @ConditionalOnProperty(value = "springdoc.api-docs.enabled", matchIfMissing = true) public class SpringDocConfig implements InitializingBean { @Autowired private SwaggerUiConfigProperties swaggerUiConfigProperties; @Autowired private DiscoveryClient discoveryClient; /** * å¨åå§ååè°ç¨çæ¹æ³ */ @Override public void afterPropertiesSet() { NotifyCenter.registerSubscriber(new SwaggerDocRegister(swaggerUiConfigProperties, discoveryClient)); } } /** * Swaggerææ¡£æ³¨åå¨ */ class SwaggerDocRegister extends Subscriber<InstancesChangeEvent> { @Autowired private SwaggerUiConfigProperties swaggerUiConfigProperties; @Autowired private DiscoveryClient discoveryClient; private final static String[] EXCLUDE_ROUTES = new String[] { "se-gateway" }; public SwaggerDocRegister(SwaggerUiConfigProperties swaggerUiConfigProperties, DiscoveryClient discoveryClient) { this.swaggerUiConfigProperties = swaggerUiConfigProperties; this.discoveryClient = discoveryClient; } /** * äºä»¶åè°æ¹æ³ï¼å¤çInstancesChangeEventäºä»¶ * @param event äºä»¶å¯¹è±¡ */ @Override public void onEvent(InstancesChangeEvent event) { Set<AbstractSwaggerUiConfigProperties.SwaggerUrl> swaggerUrlSet = discoveryClient.getServices() .stream() .flatMap(serviceId -> discoveryClient.getInstances(serviceId).stream()) .filter(instance -> !StringUtils.equalsAnyIgnoreCase(instance.getServiceId(), EXCLUDE_ROUTES)) .map(instance -> { AbstractSwaggerUiConfigProperties.SwaggerUrl swaggerUrl = new AbstractSwaggerUiConfigProperties.SwaggerUrl(); swaggerUrl.setName(instance.getServiceId()); swaggerUrl.setUrl(String.format("/%s/v3/api-docs", instance.getServiceId())); return swaggerUrl; }) .collect(Collectors.toSet()); swaggerUiConfigProperties.setUrls(swaggerUrlSet); } /** * 订é ç±»åæ¹æ³ï¼è¿å订é çäºä»¶ç±»å * @return 订é çäºä»¶ç±»å */ @Override public Class<? extends Event> subscribeType() { return InstancesChangeEvent.class; } } se-gateway/src/main/java/com/terra/gateway/constant/Constants.java
ÎļþÃû´Ó se-common/src/main/java/com/terra/common/constant/Constants.java ÐÞ¸Ä @@ -1,9 +1,9 @@ package com.terra.common.constant; package com.terra.gateway.constant; /** * éç¨å¸¸éä¿¡æ¯ * * @author admin * @author ruoyi */ public class Constants { @@ -120,16 +120,16 @@ /** * èªå¨è¯å«json对象ç½ååé ç½®ï¼ä» å 许解æçå åï¼èå´è¶å°è¶å®å ¨ï¼ */ public static final String[] JSON_WHITELIST_STR = { "org.springframework", "com.terra" }; public static final String[] JSON_WHITELIST_STR = { "org.springframework", "com.ruoyi" }; /** * 宿¶ä»»å¡ç½ååé ç½®ï¼ä» å 许访é®çå åï¼å¦å ¶ä»éè¦å¯ä»¥èªè¡æ·»å ï¼ */ public static final String[] JOB_WHITELIST_STR = { "com.terra.job.task" }; public static final String[] JOB_WHITELIST_STR = { "com.ruoyi.job.task" }; /** * 宿¶ä»»å¡è¿è§çå符 */ public static final String[] JOB_ERROR_STR = { "java.net.URL", "javax.naming.InitialContext", "org.yaml.snakeyaml", "org.springframework", "org.apache", "com.terra.common.utils.file" }; "org.springframework", "org.apache", "com.terra" }; } se-gateway/src/main/java/com/terra/gateway/domain/R.java
ÎļþÃû´Ó se-common/src/main/java/com/terra/common/domain/R.java ÐÞ¸Ä @@ -1,12 +1,13 @@ package com.terra.common.domain; package com.terra.gateway.domain; import com.terra.gateway.constant.Constants; import java.io.Serializable; import com.terra.common.constant.Constants; /** * ååºä¿¡æ¯ä¸»ä½ * * @author admin * @author ruoyi */ public class R<T> implements Serializable { se-gateway/src/main/java/com/terra/gateway/filter/AuthFilter.java
ÎļþÒÑɾ³ý se-gateway/src/main/java/com/terra/gateway/filter/BlackListUrlFilter.java
@@ -3,6 +3,8 @@ import java.util.ArrayList; import java.util.List; import java.util.regex.Pattern; import com.terra.gateway.utils.ServletUtils; import org.springframework.cloud.gateway.filter.GatewayFilter; import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory; import org.springframework.stereotype.Component; @@ -23,7 +25,7 @@ String url = exchange.getRequest().getURI().getPath(); if (config.matchBlacklist(url)) { //return ServletUtils.webFluxResponseWriter(exchange.getResponse(), "请æ±å°åä¸å 许访é®"); return ServletUtils.webFluxResponseWriter(exchange.getResponse(), "请æ±å°åä¸å 许访é®"); } return chain.filter(exchange); se-gateway/src/main/java/com/terra/gateway/filter/XssFilter.java
@@ -2,6 +2,9 @@ import java.nio.charset.StandardCharsets; import javax.annotation.Resource; import com.terra.gateway.utils.StringUtils; import com.terra.gateway.utils.html.EscapeUtil; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.cloud.gateway.filter.GlobalFilter; @@ -58,10 +61,10 @@ } // excludeUrls ä¸è¿æ»¤ String url = request.getURI().getPath(); // if (StringUtils.matches(url, xss.getExcludeUrls())) // { // return chain.filter(exchange); // } if (StringUtils.matches(url, xss.getExcludeUrls())) { return chain.filter(exchange); } ServerHttpRequestDecorator httpRequestDecorator = requestDecorator(exchange); return chain.filter(exchange.mutate().request(httpRequestDecorator).build()); @@ -83,7 +86,7 @@ DataBufferUtils.release(join); String bodyStr = new String(content, StandardCharsets.UTF_8); // é²xssæ»å»è¿æ»¤ //bodyStr = EscapeUtil.clean(bodyStr); bodyStr = EscapeUtil.clean(bodyStr); // 转æåè byte[] bytes = bodyStr.getBytes(StandardCharsets.UTF_8); NettyDataBufferFactory nettyDataBufferFactory = new NettyDataBufferFactory(ByteBufAllocator.DEFAULT); @@ -110,14 +113,13 @@ /** * æ¯å¦æ¯Jsonè¯·æ± * * * @param exchange HTTPè¯·æ± */ public boolean isJsonRequest(ServerWebExchange exchange) { String header = exchange.getRequest().getHeaders().getFirst(HttpHeaders.CONTENT_TYPE); //return StringUtils.startsWithIgnoreCase(header, MediaType.APPLICATION_JSON_VALUE); return true; return StringUtils.startsWithIgnoreCase(header, MediaType.APPLICATION_JSON_VALUE); } @Override se-gateway/src/main/java/com/terra/gateway/handler/GatewayExceptionHandler.java
@@ -1,5 +1,6 @@ package com.terra.gateway.handler; import com.terra.gateway.utils.ServletUtils; import org.springframework.cloud.gateway.support.NotFoundException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -50,7 +51,6 @@ log.error("[ç½å ³å¼å¸¸å¤ç]请æ±è·¯å¾:{},å¼å¸¸ä¿¡æ¯:{}", exchange.getRequest().getPath(), ex.getMessage()); //return ServletUtils.webFluxResponseWriter(response, msg); return Mono.error(ex); return ServletUtils.webFluxResponseWriter(response, msg); } } se-gateway/src/main/java/com/terra/gateway/handler/SentinelFallbackHandler.java
@@ -2,7 +2,8 @@ import com.alibaba.csp.sentinel.adapter.gateway.sc.callback.GatewayCallbackManager; import com.alibaba.csp.sentinel.slots.block.BlockException; import com.terra.common.utils.ServletUtils; import com.terra.gateway.utils.ServletUtils; import org.springframework.web.reactive.function.server.ServerResponse; import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.WebExceptionHandler; se-gateway/src/main/java/com/terra/gateway/text/CharsetKit.java
ÎļþÃû´Ó se-common/src/main/java/com/terra/common/text/CharsetKit.java ÐÞ¸Ä @@ -1,13 +1,14 @@ package com.terra.common.text; package com.terra.gateway.text; import com.terra.gateway.utils.StringUtils; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import com.terra.common.utils.StringUtils; /** * å符éå·¥å ·ç±» * * @author admin * @author ruoyi */ public class CharsetKit { se-gateway/src/main/java/com/terra/gateway/text/Convert.java
ÎļþÃû´Ó se-common/src/main/java/com/terra/common/text/Convert.java ÐÞ¸Ä @@ -1,4 +1,6 @@ package com.terra.common.text; package com.terra.gateway.text; import com.terra.gateway.utils.StringUtils; import java.math.BigDecimal; import java.math.BigInteger; @@ -7,12 +9,11 @@ import java.nio.charset.Charset; import java.text.NumberFormat; import java.util.Set; import com.terra.common.utils.StringUtils; /** * ç±»å转æ¢å¨ * * @author admin * @author ruoyi */ public class Convert { se-gateway/src/main/java/com/terra/gateway/text/StrFormatter.java
ÎļþÃû´Ó se-common/src/main/java/com/terra/common/text/StrFormatter.java ÐÞ¸Ä @@ -1,11 +1,12 @@ package com.terra.common.text; package com.terra.gateway.text; import com.terra.common.utils.StringUtils; import com.terra.gateway.utils.StringUtils; /** * åç¬¦ä¸²æ ¼å¼å * * @author admin * @author ruoyi */ public class StrFormatter { se-gateway/src/main/java/com/terra/gateway/utils/ServletUtils.java
ÎļþÃû´Ó se-common/src/main/java/com/terra/common/utils/ServletUtils.java ÐÞ¸Ä @@ -1,17 +1,9 @@ package com.terra.common.utils; package com.terra.gateway.utils; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; import javax.servlet.ServletRequest; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import com.alibaba.fastjson2.JSON; import com.terra.gateway.constant.Constants; import com.terra.gateway.domain.R; import com.terra.gateway.text.Convert; import org.springframework.core.io.buffer.DataBuffer; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; @@ -21,16 +13,25 @@ import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import com.alibaba.fastjson2.JSON; import com.terra.common.constant.Constants; import com.terra.common.domain.R; import com.terra.common.text.Convert; import reactor.core.publisher.Mono; import javax.servlet.ServletRequest; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.net.URLEncoder; import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; /** * 客æ·ç«¯å·¥å ·ç±» * * @author admin * @author ruoyi */ public class ServletUtils { se-gateway/src/main/java/com/terra/gateway/utils/StringUtils.java
ÎļþÃû´Ó se-common/src/main/java/com/terra/common/utils/StringUtils.java ÐÞ¸Ä @@ -1,16 +1,17 @@ package com.terra.common.utils; package com.terra.gateway.utils; import com.terra.gateway.constant.Constants; import com.terra.gateway.text.StrFormatter; import org.springframework.util.AntPathMatcher; import java.util.Collection; import java.util.List; import java.util.Map; import org.springframework.util.AntPathMatcher; import com.terra.common.constant.Constants; import com.terra.common.text.StrFormatter; /** * åç¬¦ä¸²å·¥å ·ç±» * * @author admin * @author ruoyi */ public class StringUtils extends org.apache.commons.lang3.StringUtils { se-gateway/src/main/java/com/terra/gateway/utils/html/EscapeUtil.java
ÎļþÃû´Ó se-common/src/main/java/com/terra/common/utils/html/EscapeUtil.java ÐÞ¸Ä @@ -1,11 +1,12 @@ package com.terra.common.utils.html; package com.terra.gateway.utils.html; import com.terra.common.utils.StringUtils; import com.terra.gateway.utils.StringUtils; /** * 转ä¹åå转ä¹å·¥å ·ç±» * * @author admin * @author ruoyi */ public class EscapeUtil { se-gateway/src/main/java/com/terra/gateway/utils/html/HTMLFilter.java
ÎļþÃû´Ó se-common/src/main/java/com/terra/common/utils/html/HTMLFilter.java ÐÞ¸Ä @@ -1,10 +1,6 @@ package com.terra.common.utils.html; package com.terra.gateway.utils.html; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.regex.Matcher; @@ -13,7 +9,7 @@ /** * HTMLè¿æ»¤å¨ï¼ç¨äºå»é¤XSSæ¼æ´éæ£ã * * @author admin * @author ruoyi */ public final class HTMLFilter {