diff --git a/services/src/main/java/org/keycloak/social/openshift/OpenshifV3IdentityProviderConfig.java b/services/src/main/java/org/keycloak/social/openshift/OpenshifV3IdentityProviderConfig.java
index d945aac..cd931f8 100644
--- a/services/src/main/java/org/keycloak/social/openshift/OpenshifV3IdentityProviderConfig.java
+++ b/services/src/main/java/org/keycloak/social/openshift/OpenshifV3IdentityProviderConfig.java
@@ -15,6 +15,13 @@ public class OpenshifV3IdentityProviderConfig extends OAuth2IdentityProviderConf
}
public void setBaseUrl(String baseUrl) {
- getConfig().put(BASE_URL, baseUrl);
+ getConfig().put(BASE_URL, trimTrailingSlash(baseUrl));
+ }
+
+ private String trimTrailingSlash(String baseUrl) {
+ if (baseUrl != null && baseUrl.endsWith("/")) {
+ baseUrl = baseUrl.substring(0, baseUrl.length() - 1);
+ }
+ return baseUrl;
}
}
diff --git a/services/src/test/java/org/keycloak/social/openshift/OpenshiftV3IdentityProviderTest.java b/services/src/test/java/org/keycloak/social/openshift/OpenshiftV3IdentityProviderTest.java
new file mode 100644
index 0000000..e39f157
--- /dev/null
+++ b/services/src/test/java/org/keycloak/social/openshift/OpenshiftV3IdentityProviderTest.java
@@ -0,0 +1,33 @@
+package org.keycloak.social.openshift;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.keycloak.models.IdentityProviderModel;
+
+public class OpenshiftV3IdentityProviderTest {
+
+ @Test
+ public void shouldConstructProviderUrls() throws Exception {
+ final OpenshifV3IdentityProviderConfig config = new OpenshifV3IdentityProviderConfig(new IdentityProviderModel());
+ config.setBaseUrl("http://openshift.io:8443");
+ final OpenshiftV3IdentityProvider openshiftV3IdentityProvider = new OpenshiftV3IdentityProvider(null, config);
+
+ assertConfiguredUrls(openshiftV3IdentityProvider);
+ }
+
+ @Test
+ public void shouldConstructProviderUrlsForBaseUrlWithTrailingSlash() throws Exception {
+ final OpenshifV3IdentityProviderConfig config = new OpenshifV3IdentityProviderConfig(new IdentityProviderModel());
+ config.setBaseUrl("http://openshift.io:8443/");
+ final OpenshiftV3IdentityProvider openshiftV3IdentityProvider = new OpenshiftV3IdentityProvider(null, config);
+
+ assertConfiguredUrls(openshiftV3IdentityProvider);
+ }
+
+ private void assertConfiguredUrls(OpenshiftV3IdentityProvider openshiftV3IdentityProvider) {
+ Assert.assertEquals("http://openshift.io:8443/oauth/authorize", openshiftV3IdentityProvider.getConfig().getAuthorizationUrl());
+ Assert.assertEquals("http://openshift.io:8443/oauth/token", openshiftV3IdentityProvider.getConfig().getTokenUrl());
+ Assert.assertEquals("http://openshift.io:8443/oapi/v1/users/~", openshiftV3IdentityProvider.getConfig().getUserInfoUrl());
+ }
+
+}
\ No newline at end of file