| 知乎专栏 |
过滤路径
PathPattern pattern = new PathPatternParser().parse("/test/**");
PathContainer pathContainer = exchange.getRequest().getPath().pathWithinApplication();
if (pattern.matches(pathContainer)) {
log.info("custom webFilter");
return chain.filter(exchange);
}
PathPatternParser pathPatternParser = new PathPatternParser();
List<String> paths = List.of("/token", "/verifier", "/mock/*");
List<PathPattern> parsedPatterns = new ArrayList<>();
for (String path : paths) {
PathPattern pathPattern = pathPatternParser.parse(path);
parsedPatterns.add(pathPattern);
}
PathContainer pathContainer = exchange.getRequest().getPath().pathWithinApplication();
for (PathPattern pattern : parsedPatterns) {
if (pattern.matches(pathContainer)) {
System.out.println("Path " + pathContainer + " matches pattern " + pattern.getPatternString());
}
}
return chain.filter(exchange);