从过滤器中去掉.ico
This commit is contained in:
@@ -10,25 +10,17 @@ import javax.servlet.annotation.WebInitParam;
|
|||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
@WebFilter(filterName = "LogCostFilter", urlPatterns = {"/*"},
|
@WebFilter(filterName = "LogCostFilter", urlPatterns = {"/*"},
|
||||||
initParams = {@WebInitParam(name = "ignoredUrl", value = ".ico"),
|
initParams = {@WebInitParam(name = "filterPath",
|
||||||
@WebInitParam(name = "filterPath",
|
value = "/jshERP-boot/user/login#/jshERP-boot/user/registerUser#/jshERP-boot/user/randomImage#" +
|
||||||
value = "/jshERP-boot/user/login#/jshERP-boot/user/registerUser#/jshERP-boot/user/randomImage#" +
|
"/jshERP-boot/platformConfig/getPlatform#/jshERP-boot/v2/api-docs#/jshERP-boot/webjars#" +
|
||||||
"/jshERP-boot/platformConfig/getPlatform#/jshERP-boot/v2/api-docs#/jshERP-boot/webjars#" +
|
"/jshERP-boot/systemConfig/static")})
|
||||||
"/jshERP-boot/systemConfig/static")})
|
|
||||||
public class LogCostFilter implements Filter {
|
public class LogCostFilter implements Filter {
|
||||||
|
|
||||||
private static final String FILTER_PATH = "filterPath";
|
private static final String FILTER_PATH = "filterPath";
|
||||||
private static final String IGNORED_PATH = "ignoredUrl";
|
|
||||||
|
|
||||||
private static final List<String> ignoredList = new ArrayList<>();
|
|
||||||
private String[] allowUrls;
|
private String[] allowUrls;
|
||||||
private String[] ignoredUrls;
|
|
||||||
@Resource
|
@Resource
|
||||||
private RedisService redisService;
|
private RedisService redisService;
|
||||||
|
|
||||||
@@ -38,15 +30,8 @@ public class LogCostFilter implements Filter {
|
|||||||
if (!StringUtils.isEmpty(filterPath)) {
|
if (!StringUtils.isEmpty(filterPath)) {
|
||||||
allowUrls = filterPath.contains("#") ? filterPath.split("#") : new String[]{filterPath};
|
allowUrls = filterPath.contains("#") ? filterPath.split("#") : new String[]{filterPath};
|
||||||
}
|
}
|
||||||
|
|
||||||
String ignoredPath = filterConfig.getInitParameter(IGNORED_PATH);
|
|
||||||
if (!StringUtils.isEmpty(ignoredPath)) {
|
|
||||||
ignoredUrls = ignoredPath.contains("#") ? ignoredPath.split("#") : new String[]{ignoredPath};
|
|
||||||
for (String ignoredUrl : ignoredUrls) {
|
|
||||||
ignoredList.add(ignoredUrl);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void doFilter(ServletRequest request, ServletResponse response,
|
public void doFilter(ServletRequest request, ServletResponse response,
|
||||||
FilterChain chain) throws IOException, ServletException {
|
FilterChain chain) throws IOException, ServletException {
|
||||||
@@ -64,10 +49,6 @@ public class LogCostFilter implements Filter {
|
|||||||
chain.doFilter(request, response);
|
chain.doFilter(request, response);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (verify(ignoredList, requestUrl)) {
|
|
||||||
chain.doFilter(servletRequest, response);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (null != allowUrls && allowUrls.length > 0) {
|
if (null != allowUrls && allowUrls.length > 0) {
|
||||||
for (String url : allowUrls) {
|
for (String url : allowUrls) {
|
||||||
if (requestUrl.startsWith(url)) {
|
if (requestUrl.startsWith(url)) {
|
||||||
@@ -82,19 +63,6 @@ public class LogCostFilter implements Filter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String regexPrefix = "^.*";
|
|
||||||
private static String regexSuffix = ".*$";
|
|
||||||
|
|
||||||
private static boolean verify(List<String> ignoredList, String url) {
|
|
||||||
for (String regex : ignoredList) {
|
|
||||||
Pattern pattern = Pattern.compile(regexPrefix + regex + regexSuffix);
|
|
||||||
Matcher matcher = pattern.matcher(url);
|
|
||||||
if (matcher.matches()) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
@Override
|
@Override
|
||||||
public void destroy() {
|
public void destroy() {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user