diff options
author | Morten Tokle <mortent@verizonmedia.com> | 2021-07-29 12:47:19 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-29 12:47:19 +0200 |
commit | fba423de8235b3b66a6cf6aa5b9502de8607f9e6 (patch) | |
tree | 1331cd06c423e88c7a3b057e8bc214b75c21c63b | |
parent | 32c1397365b19849114167a7bbf3e1565bbce8d5 (diff) | |
parent | a2a7556ba3b751d62176954ec2c7345899246d8f (diff) |
Merge pull request #18652 from vespa-engine/freva/redirect-port
Use port from request
-rw-r--r-- | container-core/src/main/java/com/yahoo/jdisc/http/filter/util/FilterUtils.java | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/container-core/src/main/java/com/yahoo/jdisc/http/filter/util/FilterUtils.java b/container-core/src/main/java/com/yahoo/jdisc/http/filter/util/FilterUtils.java index 1af39e2d073..6a7136de518 100644 --- a/container-core/src/main/java/com/yahoo/jdisc/http/filter/util/FilterUtils.java +++ b/container-core/src/main/java/com/yahoo/jdisc/http/filter/util/FilterUtils.java @@ -16,7 +16,6 @@ import java.net.URI; import java.net.URISyntaxException; import java.nio.ByteBuffer; import java.util.List; -import java.util.Optional; /** * Helper methods for auth0/okta request filters. @@ -27,11 +26,11 @@ public class FilterUtils { private static final ObjectMapper mapper = new ObjectMapper(); - public static boolean originIsRequestHost(DiscFilterRequest request) { + public static boolean isDifferentOrigin(DiscFilterRequest request) { try { - return Optional.ofNullable(request.getHeader("Origin")) - .map(origin -> URI.create(origin).getHost().equals(request.getServerName())) - .orElse(false); + String origin = request.getHeader("Origin"); + if (origin != null && !URI.create(origin).getHost().equals(request.getServerName())) + return true; } catch (RuntimeException ignored) { } return false; } @@ -64,16 +63,8 @@ public class FilterUtils { } public static URI createUriFromRequest(DiscFilterRequest request, String path) { - Optional<Integer> port = Optional.empty(); try { - port = Optional.ofNullable(request.getHeader("Host")) - .flatMap(host -> Optional.of(host.lastIndexOf(':') + 1) - .filter(i -> i > 0) - .map(index -> Integer.parseInt(host.substring(index)))); - } catch (NumberFormatException ignored) { } - - try { - return new URI(request.getScheme(), null, request.getServerName(), port.orElse(-1), path, null, null); + return new URI(request.getScheme(), null, request.getServerName(), request.getUri().getPort(), path, null, null); } catch (URISyntaxException e) { throw new RuntimeException(e); } |