知乎专栏 |
过滤路径
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);