Details
diff --git a/adapters/oidc/adapter-core/src/main/java/org/keycloak/adapters/KeycloakDeployment.java b/adapters/oidc/adapter-core/src/main/java/org/keycloak/adapters/KeycloakDeployment.java
index a8452f0..e1fce5b 100755
--- a/adapters/oidc/adapter-core/src/main/java/org/keycloak/adapters/KeycloakDeployment.java
+++ b/adapters/oidc/adapter-core/src/main/java/org/keycloak/adapters/KeycloakDeployment.java
@@ -154,6 +154,8 @@ public class KeycloakDeployment {
log.debug("resolveUrls");
}
+ authServerBaseUrl = authUrlBuilder.build().toString();
+
String login = authUrlBuilder.clone().path(ServiceUrlConstants.AUTH_PATH).build(getRealm()).toString();
authUrl = KeycloakUriBuilder.fromUri(login);
realmInfoUrl = authUrlBuilder.clone().path(ServiceUrlConstants.REALM_INFO_PATH).build(getRealm()).toString();
diff --git a/adapters/oidc/adapter-core/src/test/java/org/keycloak/adapters/KeycloakDeploymentTest.java b/adapters/oidc/adapter-core/src/test/java/org/keycloak/adapters/KeycloakDeploymentTest.java
index 3bb5bce..ec7f74f 100644
--- a/adapters/oidc/adapter-core/src/test/java/org/keycloak/adapters/KeycloakDeploymentTest.java
+++ b/adapters/oidc/adapter-core/src/test/java/org/keycloak/adapters/KeycloakDeploymentTest.java
@@ -17,7 +17,9 @@
package org.keycloak.adapters;
import org.junit.Test;
+import org.keycloak.representations.adapters.config.AdapterConfig;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -46,4 +48,21 @@ public class KeycloakDeploymentTest {
assertTrue(keycloakDeployment.isOAuthQueryParameterEnabled());
}
+
+ @Test
+ public void stripDefaultPorts() {
+ KeycloakDeployment keycloakDeployment = new KeycloakDeployment();
+ keycloakDeployment.setRealm("test");
+ AdapterConfig config = new AdapterConfig();
+ config.setAuthServerUrl("http://localhost:80/auth");
+ keycloakDeployment.setAuthServerBaseUrl(config);
+
+ assertEquals("http://localhost/auth", keycloakDeployment.getAuthServerBaseUrl());
+
+ config.setAuthServerUrl("https://localhost:443/auth");
+ keycloakDeployment.setAuthServerBaseUrl(config);
+
+ assertEquals("https://localhost/auth", keycloakDeployment.getAuthServerBaseUrl());
+ }
+
}
\ No newline at end of file
diff --git a/common/src/main/java/org/keycloak/common/util/KeycloakUriBuilder.java b/common/src/main/java/org/keycloak/common/util/KeycloakUriBuilder.java
index a03c53c..ed00aea 100755
--- a/common/src/main/java/org/keycloak/common/util/KeycloakUriBuilder.java
+++ b/common/src/main/java/org/keycloak/common/util/KeycloakUriBuilder.java
@@ -429,7 +429,9 @@ public class KeycloakUriBuilder {
if ("".equals(host)) throw new RuntimeException("empty host name");
replaceParameter(paramMap, fromEncodedMap, isTemplate, host, buffer, encodeSlash);
}
- if (port != -1) buffer.append(":").append(Integer.toString(port));
+ if (port != -1 && (scheme == null || (scheme.equals("http") && port != 80) || (scheme.equals("https") && port != 443)) ) {
+ buffer.append(":").append(Integer.toString(port));
+ }
} else if (authority != null) {
buffer.append("//");
replaceParameter(paramMap, fromEncodedMap, isTemplate, authority, buffer, encodeSlash);