summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMorten Tokle <mortent@verizonmedia.com>2021-07-29 12:47:19 +0200
committerGitHub <noreply@github.com>2021-07-29 12:47:19 +0200
commitfba423de8235b3b66a6cf6aa5b9502de8607f9e6 (patch)
tree1331cd06c423e88c7a3b057e8bc214b75c21c63b
parent32c1397365b19849114167a7bbf3e1565bbce8d5 (diff)
parenta2a7556ba3b751d62176954ec2c7345899246d8f (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.java19
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);
}