From 8247fa16f46161a76f34309cb22137fe2504ecd6 Mon Sep 17 00:00:00 2001 From: huangfeng Date: Tue, 16 Jan 2024 15:52:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=B9=E7=94=A8filter=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 4 +- .../xydl/cac/config/InterceptorConfig.java | 17 ------- .../cac/exception/GlobalExceptionHandler.java | 2 +- .../java/com/xydl/cac/filter/UrlFilter.java | 47 +++++++++++++++++++ .../cac/interceptor/GateWayInterceptor.java | 25 ---------- 5 files changed, 51 insertions(+), 44 deletions(-) delete mode 100644 src/main/java/com/xydl/cac/config/InterceptorConfig.java create mode 100644 src/main/java/com/xydl/cac/filter/UrlFilter.java delete mode 100644 src/main/java/com/xydl/cac/interceptor/GateWayInterceptor.java diff --git a/.gitignore b/.gitignore index 882303e..21ce137 100644 --- a/.gitignore +++ b/.gitignore @@ -46,4 +46,6 @@ packages/ /test/plugin/dist /test/plugin/workspace /test/jacoco/classes -/test/jacoco/*.exec \ No newline at end of file +/test/jacoco/*.exec + +src/main/resources/static diff --git a/src/main/java/com/xydl/cac/config/InterceptorConfig.java b/src/main/java/com/xydl/cac/config/InterceptorConfig.java deleted file mode 100644 index 46e29b6..0000000 --- a/src/main/java/com/xydl/cac/config/InterceptorConfig.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.xydl.cac.config; - -import com.xydl.cac.interceptor.GateWayInterceptor; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.InterceptorRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - -@Configuration -public class InterceptorConfig implements WebMvcConfigurer { - /** - * 注册自定义拦截器 - */ - @Override - public void addInterceptors(InterceptorRegistry registry) { - registry.addInterceptor(new GateWayInterceptor()).addPathPatterns("/**"); - } -} diff --git a/src/main/java/com/xydl/cac/exception/GlobalExceptionHandler.java b/src/main/java/com/xydl/cac/exception/GlobalExceptionHandler.java index 1fa89b3..a7c0d99 100644 --- a/src/main/java/com/xydl/cac/exception/GlobalExceptionHandler.java +++ b/src/main/java/com/xydl/cac/exception/GlobalExceptionHandler.java @@ -32,7 +32,7 @@ public class GlobalExceptionHandler { @ExceptionHandler(Exception.class) public Response handleException(Exception ex) { log.error("", ex); - String message = NestedExceptionUtils.getRootCause(ex).getLocalizedMessage(); + String message = ex.getMessage(); return Response.fail(message); } } \ No newline at end of file diff --git a/src/main/java/com/xydl/cac/filter/UrlFilter.java b/src/main/java/com/xydl/cac/filter/UrlFilter.java new file mode 100644 index 0000000..b42b59f --- /dev/null +++ b/src/main/java/com/xydl/cac/filter/UrlFilter.java @@ -0,0 +1,47 @@ +package com.xydl.cac.filter; + +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.compress.utils.Lists; +import org.springframework.stereotype.Component; +import org.springframework.util.AntPathMatcher; +import org.springframework.util.PathMatcher; +import org.springframework.web.filter.OncePerRequestFilter; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Enumeration; +import java.util.List; + +@Component +@Slf4j +public class UrlFilter extends OncePerRequestFilter { + + PathMatcher pathMatcher = new AntPathMatcher(); + private List urlWhiteList = Arrays.asList("/swagger**", "/webjars/**", "/v3/api-docs/**", "/swagger-resources/**", + "/static**"); + + @Override + protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { + String path = request.getRequestURI(); + for (String white : urlWhiteList) { + if (pathMatcher.match(white, path)) { + filterChain.doFilter(request, response); + return; + } + } + + StringBuilder str = new StringBuilder(path + " called"); + Enumeration params = request.getParameterNames(); + while (params.hasMoreElements()) { + String paramName = params.nextElement(); + str.append(", ").append(paramName).append("=").append(request.getParameter(paramName)); + } + log.info(str.toString()); + filterChain.doFilter(request, response); + } +} diff --git a/src/main/java/com/xydl/cac/interceptor/GateWayInterceptor.java b/src/main/java/com/xydl/cac/interceptor/GateWayInterceptor.java deleted file mode 100644 index ae4f59a..0000000 --- a/src/main/java/com/xydl/cac/interceptor/GateWayInterceptor.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.xydl.cac.interceptor; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.servlet.HandlerInterceptor; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.util.Enumeration; - -@Slf4j -public class GateWayInterceptor implements HandlerInterceptor { - - @Override - public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - StringBuilder str = new StringBuilder(request.getRequestURI() + " called"); - Enumeration params = request.getParameterNames(); - while (params.hasMoreElements()) { - String paramName = params.nextElement(); - str.append(", ").append(paramName).append("=").append(request.getParameter(paramName)); - } - log.info(str.toString()); - return true; - } - -}