From 37a97a22fd9882543dbe8cc524c42af4dc9f14d1 Mon Sep 17 00:00:00 2001
From: Matthias Piepkorn <mpiepk@gmail.com>
Date: Sun, 29 Jan 2017 11:01:02 +0000
Subject: [PATCH] Show required SP properties on installation page

---
 src/main/java/org/keycloak/protocol/cas/installation/KeycloakCASClientInstallation.java |   20 ++++++++++++++------
 1 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/keycloak/protocol/cas/installation/KeycloakCASClientInstallation.java b/src/main/java/org/keycloak/protocol/cas/installation/KeycloakCASClientInstallation.java
index eb0785d..62487dc 100644
--- a/src/main/java/org/keycloak/protocol/cas/installation/KeycloakCASClientInstallation.java
+++ b/src/main/java/org/keycloak/protocol/cas/installation/KeycloakCASClientInstallation.java
@@ -7,16 +7,24 @@
 import org.keycloak.models.RealmModel;
 import org.keycloak.protocol.ClientInstallationProvider;
 import org.keycloak.protocol.cas.CASLoginProtocol;
+import org.keycloak.services.resources.RealmsResource;
 
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
+import javax.ws.rs.core.UriBuilder;
 import java.net.URI;
 
 public class KeycloakCASClientInstallation implements ClientInstallationProvider {
 
     @Override
     public Response generateInstallation(KeycloakSession session, RealmModel realm, ClientModel client, URI baseUri) {
-        return Response.ok("{}", MediaType.TEXT_PLAIN_TYPE).build();
+        UriBuilder bindingUrlBuilder = UriBuilder.fromUri(baseUri);
+        String bindingUrl = RealmsResource.protocolUrl(bindingUrlBuilder)
+                .build(realm.getName(), CASLoginProtocol.LOGIN_PROTOCOL).toString();
+        String description = "CAS Server URL: " + bindingUrl + "\n" +
+                "CAS Protocol: CAS 2.0/3.0 (SAML 1.1 is not supported)\n" +
+                "Use CAS REST API: false (unsupported)";
+        return Response.ok(description, MediaType.TEXT_PLAIN_TYPE).build();
     }
 
     @Override
@@ -26,12 +34,12 @@
 
     @Override
     public String getDisplayType() {
-        return "Keycloak CAS JSON";
+        return "Plain CAS configuration";
     }
 
     @Override
     public String getHelpText() {
-        return "keycloak.json file used by the Keycloak CAS client adapter to configure clients.  This must be saved to a keycloak.json file and put in your WEB-INF directory of your WAR file.  You may also want to tweak this file after you download it.";
+        return "CAS configuration properties required by CAS clients. Enter the values shown below into the configuration dialog of your client SP.";
     }
 
     @Override
@@ -56,7 +64,7 @@
 
     @Override
     public String getId() {
-        return "keycloak-cas-keycloak-json";
+        return "keycloak-cas-text";
     }
 
     @Override
@@ -66,12 +74,12 @@
 
     @Override
     public String getFilename() {
-        return "keycloak.json";
+        return "keycloak-cas.txt";
     }
 
     @Override
     public String getMediaType() {
-        return MediaType.APPLICATION_JSON;
+        return MediaType.TEXT_PLAIN;
     }
 
 }

--
Gitblit v1.9.1