diff --git a/src/main/java/io/fusionauth/http/server/HTTPRequest.java b/src/main/java/io/fusionauth/http/server/HTTPRequest.java index 16dc7b8..341c8d9 100644 --- a/src/main/java/io/fusionauth/http/server/HTTPRequest.java +++ b/src/main/java/io/fusionauth/http/server/HTTPRequest.java @@ -801,6 +801,14 @@ private void decodeHeader(String name, String value) { } } } else { + if ("http".equalsIgnoreCase(scheme)) { + this.port = 80; + } + else if ("https".equalsIgnoreCase(scheme)) { + this.port = 443; + } else { + // fallback, intentionally do nothing + } this.host = value; } break; diff --git a/src/test/java/io/fusionauth/http/HTTPRequestTest.java b/src/test/java/io/fusionauth/http/HTTPRequestTest.java index a8bc90f..e5e9df3 100644 --- a/src/test/java/io/fusionauth/http/HTTPRequestTest.java +++ b/src/test/java/io/fusionauth/http/HTTPRequestTest.java @@ -137,8 +137,8 @@ public void getIPAddress() { @Test public void hostHeaderPortHandling() { // positive cases - assertURLs("http", "myhost", "myhost", -1, "http://myhost"); - assertURLs("https", "myhost", "myhost", -1, "https://myhost"); + assertURLs("http", "myhost", "myhost", 80, "http://myhost"); + assertURLs("https", "myhost", "myhost", 443, "https://myhost"); assertURLs("http", "myhost:80", "myhost", 80, "http://myhost"); assertURLs("https", "myhost:80", "myhost", 80, "https://myhost:80"); assertURLs("http", "myhost:443", "myhost", 443, "http://myhost:443");