keycloak-aplcache

Details

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