public realm info update
This commit is contained in:
parent
236d67f78d
commit
11559cba50
4 changed files with 35 additions and 74 deletions
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue