public boolean match(String pattern, String path) { return delegate.match(pattern, path); }
public boolean isPattern(String path) { return delegate.isPattern(path); }
/** * Extract URI template variables from the matching pattern as defined in * {@link PathMatcher#extractUriTemplateVariables}. * @return a map with URI template variables */ public Map<String, String> extractUriTemplateVariables() { return this.pathMatcher.extractUriTemplateVariables(this.matchingPattern, this.lookupPath); }
if (pattern.equals(destination) || this.pathMatcher.match(pattern, destination)) { matches.add(pattern); matches.sort(this.pathMatcher.getPatternComparator(destination)); return new DestinationPatternsMessageCondition(matches, this.pathMatcher);
if (content.isDirectory() && getPathMatcher().matchStart(fullPattern, currPath + "/")) { if (!content.canRead()) { if (logger.isDebugEnabled()) { if (getPathMatcher().match(fullPattern, currPath)) { result.add(content);
if (getPathMatcher().match(pattern, lookupPath)) { matchingPatterns.add(pattern); Comparator<String> patternComparator = getPathMatcher().getPatternComparator(lookupPath); matchingPatterns.sort(patternComparator); for (String pattern : matchingPatterns) { String pathWithinMapping = getPathMatcher().extractPathWithinPattern(pattern, lookupPath); String pathMapping = lookupPath.substring(0, lookupPath.indexOf(pathWithinMapping)); ResourceHttpRequestHandler handler = this.handlerMap.get(pattern);
return target.combine(pattern1, pattern2); if (pattern == null) return ""; return target.extractPathWithinPattern(pattern, path); if (pattern == null) return Collections.emptyMap(); return target.extractUriTemplateVariables(pattern, path); final Comparator<String> targetComparator = target.getPatternComparator(pattern); return new Comparator<String>() { public int compare(String o1, String o2) { if (pattern == null) return true; return target.isPattern(pattern); if (pattern == null) return false; return target.match(pattern, path); if (pattern == null) return false; return target.match(pattern, path);
if (getPathMatcher().match(registeredPattern, urlPath)) { matchingPatterns.add(registeredPattern); if (!registeredPattern.endsWith("/") && getPathMatcher().match(registeredPattern + "/", urlPath)) { matchingPatterns.add(registeredPattern +"/"); Comparator<String> patternComparator = getPathMatcher().getPatternComparator(urlPath); if (!matchingPatterns.isEmpty()) { matchingPatterns.sort(patternComparator); String pathWithinMapping = getPathMatcher().extractPathWithinPattern(bestMatch, urlPath); for (String matchingPattern : matchingPatterns) { if (patternComparator.compare(bestMatch, matchingPattern) == 0) { Map<String, String> vars = getPathMatcher().extractUriTemplateVariables(matchingPattern, urlPath); Map<String, String> decodedVars = getUrlPathHelper().decodePathVariables(request, vars); uriTemplateVariables.putAll(decodedVars);
@Override public Predicate<ServerWebExchange> apply(Config config) { return exchange -> { String host = exchange.getRequest().getHeaders().getFirst("Host"); Optional<String> optionalPattern = config.getPatterns().stream() .filter(pattern -> this.pathMatcher.match(pattern, host)) .findFirst(); if (optionalPattern.isPresent()) { Map<String, String> variables = this.pathMatcher.extractUriTemplateVariables(optionalPattern.get(), host); ServerWebExchangeUtils.putUriTemplateVariables(exchange, variables); return true; } return false; }; }
/** * Set the PathMatcher implementation to use for matching destinations * against configured destination patterns. * <p>By default, {@link AntPathMatcher} is used. */ public void setPathMatcher(PathMatcher pathMatcher) { Assert.notNull(pathMatcher, "PathMatcher must not be null"); this.pathMatcher = pathMatcher; this.slashPathSeparator = this.pathMatcher.combine("a", "a").equals("a/a"); }
public Comparator<String> getPatternComparator(String path) { return delegate.getPatternComparator(path); }
public boolean matchStart(String pattern, String path) { return delegate.matchStart(pattern, path); }
if (getPathMatcher().match(registeredPattern, urlPath)) { matchingPatterns.add(registeredPattern); if (!registeredPattern.endsWith("/") && getPathMatcher().match(registeredPattern + "/", urlPath)) { matchingPatterns.add(registeredPattern +"/"); Comparator<String> patternComparator = getPathMatcher().getPatternComparator(urlPath); if (!matchingPatterns.isEmpty()) { matchingPatterns.sort(patternComparator); String pathWithinMapping = getPathMatcher().extractPathWithinPattern(bestMatch, urlPath); for (String matchingPattern : matchingPatterns) { if (patternComparator.compare(bestMatch, matchingPattern) == 0) { Map<String, String> vars = getPathMatcher().extractUriTemplateVariables(matchingPattern, urlPath); Map<String, String> decodedVars = getUrlPathHelper().decodePathVariables(request, vars); uriTemplateVariables.putAll(decodedVars);
if (content.isDirectory() && getPathMatcher().matchStart(fullPattern, currPath + "/")) { if (!content.canRead()) { if (logger.isDebugEnabled()) { if (getPathMatcher().match(fullPattern, currPath)) { result.add(content);
if (getPathMatcher().match(pattern, lookupPath)) { matchingPatterns.add(pattern); Comparator<String> patternComparator = getPathMatcher().getPatternComparator(lookupPath); matchingPatterns.sort(patternComparator); for (String pattern : matchingPatterns) { String pathWithinMapping = getPathMatcher().extractPathWithinPattern(pattern, lookupPath); String pathMapping = lookupPath.substring(0, lookupPath.indexOf(pathWithinMapping)); ResourceHttpRequestHandler handler = this.handlerMap.get(pattern);
@SuppressWarnings("unchecked") private void extractHandlerMethodUriTemplates(String mappedPattern, String lookupPath, HttpServletRequest request) { Map<String, String> variables = (Map<String, String>) request.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE); int patternVariableCount = StringUtils.countOccurrencesOf(mappedPattern, "{"); if ((variables == null || patternVariableCount != variables.size()) && pathMatcher.match(mappedPattern, lookupPath)) { variables = pathMatcher.extractUriTemplateVariables(mappedPattern, lookupPath); Map<String, String> decodedVariables = urlPathHelper.decodePathVariables(request, variables); request.setAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE, decodedVariables); } } }
if (pattern.equals(destination) || this.pathMatcher.match(pattern, destination)) { matches.add(pattern); matches.sort(this.pathMatcher.getPatternComparator(destination)); return new DestinationPatternsMessageCondition(matches, this.pathMatcher);
public String combine(String pattern1, String pattern2) { return delegate.combine(pattern1, pattern2); }
public Comparator<String> getPatternComparator(String path) { return delegate.getPatternComparator(path); }
public boolean matchStart(String pattern, String path) { return delegate.matchStart(pattern, path); }