Details
diff --git a/core/src/main/java/org/keycloak/representations/idm/PublishedRealmRepresentation.java b/core/src/main/java/org/keycloak/representations/idm/PublishedRealmRepresentation.java
index 4f1f2ea..20cc452 100755
--- a/core/src/main/java/org/keycloak/representations/idm/PublishedRealmRepresentation.java
+++ b/core/src/main/java/org/keycloak/representations/idm/PublishedRealmRepresentation.java
@@ -15,34 +15,22 @@ import java.security.PublicKey;
*/
public class PublishedRealmRepresentation {
protected String realm;
- protected String self;
@JsonProperty("public_key")
protected String publicKeyPem;
- @JsonProperty("authorization")
- protected String authorizationUrl;
+ @JsonProperty("token-service")
+ protected String tokenServiceUrl;
- @JsonProperty("codes")
- protected String codeUrl;
+ @JsonProperty("account-service")
+ protected String accountServiceUrl;
- @JsonProperty("grants")
- protected String grantUrl;
-
- @JsonProperty("admin-role")
- protected String adminRole;
+ @JsonProperty("admin-api")
+ protected String adminApiUrl;
@JsonIgnore
protected volatile transient PublicKey publicKey;
- public String getAdminRole() {
- return adminRole;
- }
-
- public void setAdminRole(String adminRole) {
- this.adminRole = adminRole;
- }
-
public String getRealm() {
return realm;
}
@@ -51,14 +39,6 @@ public class PublishedRealmRepresentation {
this.realm = realm;
}
- public String getSelf() {
- return self;
- }
-
- public void setSelf(String self) {
- this.self = self;
- }
-
public String getPublicKeyPem() {
return publicKeyPem;
}
@@ -97,28 +77,27 @@ public class PublishedRealmRepresentation {
this.publicKeyPem = PemUtils.removeBeginEnd(s);
}
-
- public String getAuthorizationUrl() {
- return authorizationUrl;
+ public String getTokenServiceUrl() {
+ return tokenServiceUrl;
}
- public void setAuthorizationUrl(String authorizationUrl) {
- this.authorizationUrl = authorizationUrl;
+ public void setTokenServiceUrl(String tokenServiceUrl) {
+ this.tokenServiceUrl = tokenServiceUrl;
}
- public String getCodeUrl() {
- return codeUrl;
+ public String getAccountServiceUrl() {
+ return accountServiceUrl;
}
- public void setCodeUrl(String codeUrl) {
- this.codeUrl = codeUrl;
+ public void setAccountServiceUrl(String accountServiceUrl) {
+ this.accountServiceUrl = accountServiceUrl;
}
- public String getGrantUrl() {
- return grantUrl;
+ public String getAdminApiUrl() {
+ return adminApiUrl;
}
- public void setGrantUrl(String grantUrl) {
- this.grantUrl = grantUrl;
+ public void setAdminApiUrl(String adminApiUrl) {
+ this.adminApiUrl = adminApiUrl;
}
}
diff --git a/services/src/main/java/org/keycloak/services/resources/AccountService.java b/services/src/main/java/org/keycloak/services/resources/AccountService.java
index 19f0071..3814691 100755
--- a/services/src/main/java/org/keycloak/services/resources/AccountService.java
+++ b/services/src/main/java/org/keycloak/services/resources/AccountService.java
@@ -74,6 +74,12 @@ public class AccountService {
this.authManager = new AppAuthManager("KEYCLOAK_ACCOUNT_IDENTITY", tokenManager);
}
+ public static UriBuilder accountServiceBaseUrl(UriInfo uriInfo) {
+ UriBuilder base = uriInfo.getBaseUriBuilder().path(RealmsResource.class).path(RealmsResource.class, "getAccountService");
+ return base;
+ }
+
+
private Response forwardToPage(String path, AccountPages page) {
Auth auth = getAuth(false);
if (auth != null) {
diff --git a/services/src/main/java/org/keycloak/services/resources/admin/AdminService.java b/services/src/main/java/org/keycloak/services/resources/admin/AdminService.java
index 0b1aa12..afe2317 100755
--- a/services/src/main/java/org/keycloak/services/resources/admin/AdminService.java
+++ b/services/src/main/java/org/keycloak/services/resources/admin/AdminService.java
@@ -17,6 +17,7 @@ import org.keycloak.services.managers.AppAuthManager;
import org.keycloak.services.managers.Auth;
import org.keycloak.services.managers.RealmManager;
import org.keycloak.services.managers.TokenManager;
+import org.keycloak.services.resources.RealmsResource;
import org.keycloak.services.resources.TokenService;
import org.keycloak.services.resources.flows.Flows;
@@ -75,6 +76,12 @@ public class AdminService {
this.authManager = new AppAuthManager("KEYCLOAK_ADMIN_CONSOLE_IDENTITY", tokenManager);
}
+ public static UriBuilder adminApiUrl(UriInfo uriInfo) {
+ UriBuilder base = uriInfo.getBaseUriBuilder().path(AdminService.class).path(AdminService.class, "getRealmsAdmin").path(RealmsAdminResource.class, "getRealmAdmin");
+ return base;
+ }
+
+
public static class WhoAmI {
protected String userId;
protected String displayName;
diff --git a/services/src/main/java/org/keycloak/services/resources/PublicRealmResource.java b/services/src/main/java/org/keycloak/services/resources/PublicRealmResource.java
index 944f1a9..81f12a2 100755
--- a/services/src/main/java/org/keycloak/services/resources/PublicRealmResource.java
+++ b/services/src/main/java/org/keycloak/services/resources/PublicRealmResource.java
@@ -4,6 +4,7 @@ import org.jboss.resteasy.annotations.cache.NoCache;
import org.jboss.resteasy.logging.Logger;
import org.keycloak.models.RealmModel;
import org.keycloak.representations.idm.PublishedRealmRepresentation;
+import org.keycloak.services.resources.admin.AdminService;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
@@ -19,7 +20,6 @@ import javax.ws.rs.core.UriInfo;
*/
public class PublicRealmResource {
protected static final Logger logger = Logger.getLogger(PublicRealmResource.class);
- public static final String ADMIN_ROLE = "$REALM-ADMIN$";
@Context
protected UriInfo uriInfo;
@@ -30,12 +30,6 @@ public class PublicRealmResource {
this.realm = realm;
}
- public static UriBuilder realmUrl(UriInfo uriInfo) {
- UriBuilder base = uriInfo.getBaseUriBuilder()
- .path(RealmsResource.class).path(RealmsResource.class, "getRealmResource");
- return base;
- }
-
@GET
@NoCache
@Produces("application/json")
@@ -43,38 +37,13 @@ public class PublicRealmResource {
return realmRep(realm, uriInfo);
}
- @GET
- @NoCache
- @Path("html")
- @Produces("text/html")
- public String getRealmHtml(@PathParam("realm") String id) {
- StringBuffer html = new StringBuffer();
-
- String authUri = TokenService.loginPageUrl(uriInfo).build(realm.getName()).toString();
- String codeUri = TokenService.accessCodeToTokenUrl(uriInfo).build(realm.getName()).toString();
- String grantUrl = TokenService.grantAccessTokenUrl(uriInfo).build(realm.getName()).toString();
-
- html.append("<html><body><h1>Realm: ").append(realm.getName()).append("</h1>");
- html.append("<p>auth: ").append(authUri).append("</p>");
- html.append("<p>code: ").append(codeUri).append("</p>");
- html.append("<p>grant: ").append(grantUrl).append("</p>");
- html.append("<p>public key: ").append(realm.getPublicKeyPem()).append("</p>");
- html.append("</body></html>");
-
- return html.toString();
- }
-
-
public static PublishedRealmRepresentation realmRep(RealmModel realm, UriInfo uriInfo) {
PublishedRealmRepresentation rep = new PublishedRealmRepresentation();
rep.setRealm(realm.getName());
- rep.setSelf(realmUrl(uriInfo).build(realm.getId()).toString());
+ rep.setTokenServiceUrl(TokenService.tokenServiceBaseUrl(uriInfo).build(realm.getId()).toString());
+ rep.setAccountServiceUrl(AccountService.accountServiceBaseUrl(uriInfo).build(realm.getId()).toString());
+ rep.setAdminApiUrl(AdminService.adminApiUrl(uriInfo).build(realm.getId()).toString());
rep.setPublicKeyPem(realm.getPublicKeyPem());
- rep.setAdminRole(ADMIN_ROLE);
-
- rep.setAuthorizationUrl(TokenService.loginPageUrl(uriInfo).build(realm.getName()).toString());
- rep.setCodeUrl(TokenService.accessCodeToTokenUrl(uriInfo).build(realm.getName()).toString());
- rep.setGrantUrl(TokenService.grantAccessTokenUrl(uriInfo).build(realm.getName()).toString());
return rep;
}