feat: 改用filter过滤路径

iec104
huangfeng 1 year ago
parent c830d1ab5f
commit 8247fa16f4

4
.gitignore vendored

@ -46,4 +46,6 @@ packages/
/test/plugin/dist
/test/plugin/workspace
/test/jacoco/classes
/test/jacoco/*.exec
/test/jacoco/*.exec
src/main/resources/static

@ -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("/**");
}
}

@ -32,7 +32,7 @@ public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public Response<String> handleException(Exception ex) {
log.error("", ex);
String message = NestedExceptionUtils.getRootCause(ex).getLocalizedMessage();
String message = ex.getMessage();
return Response.fail(message);
}
}

@ -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<String> 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<String> 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);
}
}

@ -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<String> 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;
}
}
Loading…
Cancel
Save