From ad768dfbd6cea6d1d2588b295159f366f80b966f Mon Sep 17 00:00:00 2001 From: Bjørn Christian Seime Date: Tue, 2 Apr 2019 15:53:31 +0200 Subject: Handle 'https' scheme in uri pattern matching as 'http' --- .../src/main/java/com/yahoo/jdisc/application/UriPattern.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'jdisc_core/src/main/java/com/yahoo/jdisc/application') diff --git a/jdisc_core/src/main/java/com/yahoo/jdisc/application/UriPattern.java b/jdisc_core/src/main/java/com/yahoo/jdisc/application/UriPattern.java index 0e6e5d28260..350d8170987 100644 --- a/jdisc_core/src/main/java/com/yahoo/jdisc/application/UriPattern.java +++ b/jdisc_core/src/main/java/com/yahoo/jdisc/application/UriPattern.java @@ -65,7 +65,7 @@ public class UriPattern implements Comparable { if (!matcher.find()) { throw new IllegalArgumentException(uri); } - scheme = GlobPattern.compile(resolvePatternComponent(matcher.group(1))); + scheme = GlobPattern.compile(normalizeScheme(resolvePatternComponent(matcher.group(1)))); host = GlobPattern.compile(resolvePatternComponent(matcher.group(2))); port = resolvePortPattern(matcher.group(4)); path = GlobPattern.compile(resolvePatternComponent(matcher.group(7))); @@ -91,7 +91,7 @@ public class UriPattern implements Comparable { return null; } // Match scheme before host because it has a higher chance of differing (e.g. http versus https) - GlobPattern.Match schemeMatch = scheme.match(resolveUriComponent(uri.getScheme())); + GlobPattern.Match schemeMatch = scheme.match(normalizeScheme(resolveUriComponent(uri.getScheme()))); if (schemeMatch == null) { return null; } @@ -172,6 +172,11 @@ public class UriPattern implements Comparable { } } + private static String normalizeScheme(String scheme) { + if (scheme.equals("https")) return "http"; // handle 'https' in bindings and uris as 'http' + return scheme; + } + /** *

This class holds the result of a {@link UriPattern#match(URI)} operation. It contains methods to inspect the * groups captured during matching, where a group is defined as a sequence of characters matches by a -- cgit v1.2.3