diff --git a/core/src/main/java/org/keycloak/representations/idm/ApplicationRepresentation.java b/core/src/main/java/org/keycloak/representations/idm/ApplicationRepresentation.java
index 8f38e4b37c..cc9b657083 100755
--- a/core/src/main/java/org/keycloak/representations/idm/ApplicationRepresentation.java
+++ b/core/src/main/java/org/keycloak/representations/idm/ApplicationRepresentation.java
@@ -1,46 +1,14 @@
package org.keycloak.representations.idm;
-import java.util.List;
-import java.util.Map;
-
/**
* @author Bill Burke
* @version $Revision: 1 $
*/
-public class ApplicationRepresentation {
- protected String id;
+@Deprecated
+public class ApplicationRepresentation extends ClientRepresentation {
protected String name;
- protected String adminUrl;
- protected String baseUrl;
- protected Boolean surrogateAuthRequired;
- protected Boolean enabled;
- protected String secret;
- protected String[] defaultRoles;
- protected List redirectUris;
- protected List webOrigins;
@Deprecated
protected ClaimRepresentation claims;
- protected Integer notBefore;
- protected Boolean bearerOnly;
- protected Boolean consentRequired;
- protected Boolean directGrantsOnly;
- protected Boolean publicClient;
- protected Boolean frontchannelLogout;
- protected String protocol;
- protected Map attributes;
- protected Boolean fullScopeAllowed;
- protected Integer nodeReRegistrationTimeout;
- protected Map registeredNodes;
- protected List identityProviders;
- protected List protocolMappers;
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
public String getName() {
return name;
@@ -50,70 +18,6 @@ public class ApplicationRepresentation {
this.name = name;
}
- public Boolean isEnabled() {
- return enabled;
- }
-
- public void setEnabled(Boolean enabled) {
- this.enabled = enabled;
- }
-
- public Boolean isSurrogateAuthRequired() {
- return surrogateAuthRequired;
- }
-
- public void setSurrogateAuthRequired(Boolean surrogateAuthRequired) {
- this.surrogateAuthRequired = surrogateAuthRequired;
- }
-
- public String getAdminUrl() {
- return adminUrl;
- }
-
- public void setAdminUrl(String adminUrl) {
- this.adminUrl = adminUrl;
- }
-
- public String getBaseUrl() {
- return baseUrl;
- }
-
- public void setBaseUrl(String baseUrl) {
- this.baseUrl = baseUrl;
- }
-
- public String getSecret() {
- return secret;
- }
-
- public void setSecret(String secret) {
- this.secret = secret;
- }
-
- public List getRedirectUris() {
- return redirectUris;
- }
-
- public void setRedirectUris(List redirectUris) {
- this.redirectUris = redirectUris;
- }
-
- public List getWebOrigins() {
- return webOrigins;
- }
-
- public void setWebOrigins(List webOrigins) {
- this.webOrigins = webOrigins;
- }
-
- public String[] getDefaultRoles() {
- return defaultRoles;
- }
-
- public void setDefaultRoles(String[] defaultRoles) {
- this.defaultRoles = defaultRoles;
- }
-
public ClaimRepresentation getClaims() {
return claims;
}
@@ -121,108 +25,4 @@ public class ApplicationRepresentation {
public void setClaims(ClaimRepresentation claims) {
this.claims = claims;
}
-
- public Integer getNotBefore() {
- return notBefore;
- }
-
- public void setNotBefore(Integer notBefore) {
- this.notBefore = notBefore;
- }
-
- public Boolean isBearerOnly() {
- return bearerOnly;
- }
-
- public void setBearerOnly(Boolean bearerOnly) {
- this.bearerOnly = bearerOnly;
- }
-
- public Boolean isConsentRequired() {
- return consentRequired;
- }
-
- public void setConsentRequired(Boolean consentRequired) {
- this.consentRequired = consentRequired;
- }
-
- public Boolean getDirectGrantsOnly() {
- return directGrantsOnly;
- }
-
- public void setDirectGrantsOnly(Boolean directGrantsOnly) {
- this.directGrantsOnly = directGrantsOnly;
- }
-
- public Boolean isPublicClient() {
- return publicClient;
- }
-
- public void setPublicClient(Boolean publicClient) {
- this.publicClient = publicClient;
- }
-
- public Boolean isFullScopeAllowed() {
- return fullScopeAllowed;
- }
-
- public void setFullScopeAllowed(Boolean fullScopeAllowed) {
- this.fullScopeAllowed = fullScopeAllowed;
- }
-
- public String getProtocol() {
- return protocol;
- }
-
- public void setProtocol(String protocol) {
- this.protocol = protocol;
- }
-
- public Map getAttributes() {
- return attributes;
- }
-
- public void setAttributes(Map attributes) {
- this.attributes = attributes;
- }
-
- public Integer getNodeReRegistrationTimeout() {
- return nodeReRegistrationTimeout;
- }
-
- public void setNodeReRegistrationTimeout(Integer nodeReRegistrationTimeout) {
- this.nodeReRegistrationTimeout = nodeReRegistrationTimeout;
- }
-
- public Map getRegisteredNodes() {
- return registeredNodes;
- }
-
- public void setRegisteredNodes(Map registeredNodes) {
- this.registeredNodes = registeredNodes;
- }
-
- public Boolean isFrontchannelLogout() {
- return frontchannelLogout;
- }
-
- public void setFrontchannelLogout(Boolean frontchannelLogout) {
- this.frontchannelLogout = frontchannelLogout;
- }
-
- public List getIdentityProviders() {
- return this.identityProviders;
- }
-
- public void setIdentityProviders(List identityProviders) {
- this.identityProviders = identityProviders;
- }
-
- public List getProtocolMappers() {
- return protocolMappers;
- }
-
- public void setProtocolMappers(List protocolMappers) {
- this.protocolMappers = protocolMappers;
- }
}
diff --git a/core/src/main/java/org/keycloak/representations/idm/ClientRepresentation.java b/core/src/main/java/org/keycloak/representations/idm/ClientRepresentation.java
new file mode 100755
index 0000000000..de40f101ca
--- /dev/null
+++ b/core/src/main/java/org/keycloak/representations/idm/ClientRepresentation.java
@@ -0,0 +1,218 @@
+package org.keycloak.representations.idm;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author Bill Burke
+ * @version $Revision: 1 $
+ */
+public class ClientRepresentation {
+ protected String id;
+ protected String clientId;
+ protected String adminUrl;
+ protected String baseUrl;
+ protected Boolean surrogateAuthRequired;
+ protected Boolean enabled;
+ protected String secret;
+ protected String[] defaultRoles;
+ protected List redirectUris;
+ protected List webOrigins;
+ protected Integer notBefore;
+ protected Boolean bearerOnly;
+ protected Boolean consentRequired;
+ protected Boolean directGrantsOnly;
+ protected Boolean publicClient;
+ protected Boolean frontchannelLogout;
+ protected String protocol;
+ protected Map attributes;
+ protected Boolean fullScopeAllowed;
+ protected Integer nodeReRegistrationTimeout;
+ protected Map registeredNodes;
+ protected List identityProviders;
+ protected List protocolMappers;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getClientId() {
+ return clientId;
+ }
+
+ public void setClientId(String clientId) {
+ this.clientId = clientId;
+ }
+
+ public Boolean isEnabled() {
+ return enabled;
+ }
+
+ public void setEnabled(Boolean enabled) {
+ this.enabled = enabled;
+ }
+
+ public Boolean isSurrogateAuthRequired() {
+ return surrogateAuthRequired;
+ }
+
+ public void setSurrogateAuthRequired(Boolean surrogateAuthRequired) {
+ this.surrogateAuthRequired = surrogateAuthRequired;
+ }
+
+ public String getAdminUrl() {
+ return adminUrl;
+ }
+
+ public void setAdminUrl(String adminUrl) {
+ this.adminUrl = adminUrl;
+ }
+
+ public String getBaseUrl() {
+ return baseUrl;
+ }
+
+ public void setBaseUrl(String baseUrl) {
+ this.baseUrl = baseUrl;
+ }
+
+ public String getSecret() {
+ return secret;
+ }
+
+ public void setSecret(String secret) {
+ this.secret = secret;
+ }
+
+ public List getRedirectUris() {
+ return redirectUris;
+ }
+
+ public void setRedirectUris(List redirectUris) {
+ this.redirectUris = redirectUris;
+ }
+
+ public List getWebOrigins() {
+ return webOrigins;
+ }
+
+ public void setWebOrigins(List webOrigins) {
+ this.webOrigins = webOrigins;
+ }
+
+ public String[] getDefaultRoles() {
+ return defaultRoles;
+ }
+
+ public void setDefaultRoles(String[] defaultRoles) {
+ this.defaultRoles = defaultRoles;
+ }
+
+ public Integer getNotBefore() {
+ return notBefore;
+ }
+
+ public void setNotBefore(Integer notBefore) {
+ this.notBefore = notBefore;
+ }
+
+ public Boolean isBearerOnly() {
+ return bearerOnly;
+ }
+
+ public void setBearerOnly(Boolean bearerOnly) {
+ this.bearerOnly = bearerOnly;
+ }
+
+ public Boolean isConsentRequired() {
+ return consentRequired;
+ }
+
+ public void setConsentRequired(Boolean consentRequired) {
+ this.consentRequired = consentRequired;
+ }
+
+ public Boolean getDirectGrantsOnly() {
+ return directGrantsOnly;
+ }
+
+ public void setDirectGrantsOnly(Boolean directGrantsOnly) {
+ this.directGrantsOnly = directGrantsOnly;
+ }
+
+ public Boolean isPublicClient() {
+ return publicClient;
+ }
+
+ public void setPublicClient(Boolean publicClient) {
+ this.publicClient = publicClient;
+ }
+
+ public Boolean isFullScopeAllowed() {
+ return fullScopeAllowed;
+ }
+
+ public void setFullScopeAllowed(Boolean fullScopeAllowed) {
+ this.fullScopeAllowed = fullScopeAllowed;
+ }
+
+ public String getProtocol() {
+ return protocol;
+ }
+
+ public void setProtocol(String protocol) {
+ this.protocol = protocol;
+ }
+
+ public Map getAttributes() {
+ return attributes;
+ }
+
+ public void setAttributes(Map attributes) {
+ this.attributes = attributes;
+ }
+
+ public Integer getNodeReRegistrationTimeout() {
+ return nodeReRegistrationTimeout;
+ }
+
+ public void setNodeReRegistrationTimeout(Integer nodeReRegistrationTimeout) {
+ this.nodeReRegistrationTimeout = nodeReRegistrationTimeout;
+ }
+
+ public Map getRegisteredNodes() {
+ return registeredNodes;
+ }
+
+ public void setRegisteredNodes(Map registeredNodes) {
+ this.registeredNodes = registeredNodes;
+ }
+
+ public Boolean isFrontchannelLogout() {
+ return frontchannelLogout;
+ }
+
+ public void setFrontchannelLogout(Boolean frontchannelLogout) {
+ this.frontchannelLogout = frontchannelLogout;
+ }
+
+ public List getIdentityProviders() {
+ return this.identityProviders;
+ }
+
+ public void setIdentityProviders(List identityProviders) {
+ this.identityProviders = identityProviders;
+ }
+
+ public List getProtocolMappers() {
+ return protocolMappers;
+ }
+
+ public void setProtocolMappers(List protocolMappers) {
+ this.protocolMappers = protocolMappers;
+ }
+}
diff --git a/core/src/main/java/org/keycloak/representations/idm/OAuthClientRepresentation.java b/core/src/main/java/org/keycloak/representations/idm/OAuthClientRepresentation.java
index 5f0ed4e3b0..9eec3e9d30 100755
--- a/core/src/main/java/org/keycloak/representations/idm/OAuthClientRepresentation.java
+++ b/core/src/main/java/org/keycloak/representations/idm/OAuthClientRepresentation.java
@@ -1,157 +1,9 @@
package org.keycloak.representations.idm;
-import java.util.List;
-import java.util.Map;
-
/**
* @author Bill Burke
* @version $Revision: 1 $
*/
-public class OAuthClientRepresentation {
- protected String id;
- protected String name;
- protected List redirectUris;
- protected List webOrigins;
- protected Boolean enabled;
- protected String secret;
- @Deprecated
- protected ClaimRepresentation claims;
- protected Integer notBefore;
- protected Boolean publicClient;
- protected String protocol;
- protected Map attributes;
- protected Boolean directGrantsOnly;
- protected Boolean fullScopeAllowed;
- protected Boolean frontchannelLogout;
- protected List protocolMappers;
- private List identityProviders;
-
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public Boolean isEnabled() {
- return enabled;
- }
-
- public void setEnabled(Boolean enabled) {
- this.enabled = enabled;
- }
-
- public List getRedirectUris() {
- return redirectUris;
- }
-
- public void setRedirectUris(List redirectUris) {
- this.redirectUris = redirectUris;
- }
-
- public List getWebOrigins() {
- return webOrigins;
- }
-
- public void setWebOrigins(List webOrigins) {
- this.webOrigins = webOrigins;
- }
-
- public String getSecret() {
- return secret;
- }
-
- public void setSecret(String secret) {
- this.secret = secret;
- }
-
- public ClaimRepresentation getClaims() {
- return claims;
- }
-
- public void setClaims(ClaimRepresentation claims) {
- this.claims = claims;
- }
-
- public Integer getNotBefore() {
- return notBefore;
- }
-
- public void setNotBefore(Integer notBefore) {
- this.notBefore = notBefore;
- }
-
- public Boolean isPublicClient() {
- return publicClient;
- }
-
- public void setPublicClient(Boolean publicClient) {
- this.publicClient = publicClient;
- }
-
- public Boolean isDirectGrantsOnly() {
- return directGrantsOnly;
- }
-
- public void setDirectGrantsOnly(Boolean directGrantsOnly) {
- this.directGrantsOnly = directGrantsOnly;
- }
-
- public Boolean isFullScopeAllowed() {
- return fullScopeAllowed;
- }
-
- public void setFullScopeAllowed(Boolean fullScopeAllowed) {
- this.fullScopeAllowed = fullScopeAllowed;
- }
-
- public String getProtocol() {
- return protocol;
- }
-
- public void setProtocol(String protocol) {
- this.protocol = protocol;
- }
-
- public Map getAttributes() {
- return attributes;
- }
-
- public void setAttributes(Map attributes) {
- this.attributes = attributes;
- }
-
- public Boolean isFrontchannelLogout() {
- return frontchannelLogout;
- }
-
- public void setFrontchannelLogout(Boolean frontchannelLogout) {
- this.frontchannelLogout = frontchannelLogout;
- }
-
- public List getIdentityProviders() {
- return this.identityProviders;
- }
-
- public void setIdentityProviders(List identityProviders) {
- this.identityProviders = identityProviders;
- }
-
- public List getProtocolMappers() {
- return protocolMappers;
- }
-
- public void setProtocolMappers(List protocolMappers) {
- this.protocolMappers = protocolMappers;
- }
+@Deprecated
+public class OAuthClientRepresentation extends ApplicationRepresentation {
}
diff --git a/core/src/main/java/org/keycloak/representations/idm/RealmRepresentation.java b/core/src/main/java/org/keycloak/representations/idm/RealmRepresentation.java
index b350e3825a..aad60685ed 100755
--- a/core/src/main/java/org/keycloak/representations/idm/RealmRepresentation.java
+++ b/core/src/main/java/org/keycloak/representations/idm/RealmRepresentation.java
@@ -56,7 +56,10 @@ public class RealmRepresentation {
protected List users;
protected List scopeMappings;
protected Map> applicationScopeMappings;
+ protected List clients;
+ @Deprecated
protected List applications;
+ @Deprecated
protected List oauthClients;
protected Map browserSecurityHeaders;
protected Map smtpServer;
@@ -101,14 +104,6 @@ public class RealmRepresentation {
return applications;
}
- public ApplicationRepresentation resource(String name) {
- ApplicationRepresentation resource = new ApplicationRepresentation();
- if (applications == null) applications = new ArrayList();
- applications.add(resource);
- resource.setName(name);
- return resource;
- }
-
public void setUsers(List users) {
this.users = users;
}
@@ -121,6 +116,14 @@ public class RealmRepresentation {
return user;
}
+ public List getClients() {
+ return clients;
+ }
+
+ public void setClients(List clients) {
+ this.clients = clients;
+ }
+
public void setApplications(List applications) {
this.applications = applications;
}
diff --git a/examples/admin-client/src/main/webapp/index.jsp b/examples/admin-client/src/main/webapp/index.jsp
index 13b6eee183..980f1962ec 100644
--- a/examples/admin-client/src/main/webapp/index.jsp
+++ b/examples/admin-client/src/main/webapp/index.jsp
@@ -1,5 +1,5 @@
<%@ page import="org.keycloak.admin.client.Keycloak" %>
-<%@ page import="org.keycloak.admin.client.resource.ApplicationsResource" %>
+<%@ page import="org.keycloak.admin.client.resource.ClientsResource" %>
<%@ page import="org.keycloak.representations.idm.ApplicationRepresentation" %>
<%@ page import="org.keycloak.util.UriUtils" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %>
@@ -13,7 +13,7 @@
String authServer = UriUtils.getOrigin(request.getRequestURL().toString()) + "/auth";
Keycloak keycloak = Keycloak.getInstance(authServer, "example", "examples-admin-client", "password", "examples-admin-client", "password");
- ApplicationsResource applications = keycloak.realm("example").applications();
+ ClientsResource applications = keycloak.realm("example").applications();
out.println("Applications
");
out.println("");
diff --git a/export-import/export-import-api/src/main/java/org/keycloak/exportimport/util/ExportUtils.java b/export-import/export-import-api/src/main/java/org/keycloak/exportimport/util/ExportUtils.java
index 787f8ca20e..43d1f6b889 100755
--- a/export-import/export-import-api/src/main/java/org/keycloak/exportimport/util/ExportUtils.java
+++ b/export-import/export-import-api/src/main/java/org/keycloak/exportimport/util/ExportUtils.java
@@ -16,6 +16,7 @@ import org.keycloak.models.UserCredentialValueModel;
import org.keycloak.models.UserModel;
import org.keycloak.models.utils.ModelToRepresentation;
import org.keycloak.representations.idm.ApplicationRepresentation;
+import org.keycloak.representations.idm.ClientRepresentation;
import org.keycloak.representations.idm.CredentialRepresentation;
import org.keycloak.representations.idm.RealmRepresentation;
import org.keycloak.representations.idm.RoleRepresentation;
@@ -53,14 +54,14 @@ public class ExportUtils {
rep.setEventsListeners(new LinkedList(realm.getEventsListeners()));
}
- // Applications
- List applications = realm.getClients();
- List appReps = new ArrayList();
- for (ClientModel app : applications) {
- ApplicationRepresentation appRep = exportApplication(app);
- appReps.add(appRep);
+ // Clients
+ List clients = realm.getClients();
+ List clientReps = new ArrayList<>();
+ for (ClientModel app : clients) {
+ ClientRepresentation clientRep = exportClient(app);
+ clientReps.add(clientRep);
}
- rep.setApplications(appReps);
+ rep.setClients(clientReps);
// Roles
List realmRoleReps = null;
@@ -70,7 +71,7 @@ public class ExportUtils {
if (realmRoles != null && realmRoles.size() > 0) {
realmRoleReps = exportRoles(realmRoles);
}
- for (ClientModel app : applications) {
+ for (ClientModel app : clients) {
Set currentAppRoles = app.getRoles();
List currentAppRoleReps = exportRoles(currentAppRoles);
appRolesReps.put(app.getClientId(), currentAppRoleReps);
@@ -86,7 +87,7 @@ public class ExportUtils {
rep.setRoles(rolesRep);
// Scopes
- List allClients = new ArrayList<>(applications);
+ List allClients = new ArrayList<>(clients);
Map> appScopeReps = new HashMap<>();
for (ClientModel client : allClients) {
@@ -147,14 +148,13 @@ public class ExportUtils {
/**
* Full export of application including claims and secret
- * @param app
+ * @param client
* @return full ApplicationRepresentation
*/
- public static ApplicationRepresentation exportApplication(ClientModel app) {
- ApplicationRepresentation appRep = ModelToRepresentation.toRepresentation(app);
-
- appRep.setSecret(app.getSecret());
- return appRep;
+ public static ClientRepresentation exportClient(ClientModel client) {
+ ClientRepresentation clientRep = ModelToRepresentation.toRepresentation(client);
+ clientRep.setSecret(client.getSecret());
+ return clientRep;
}
public static List exportRoles(Collection roles) {
diff --git a/export-import/export-import-api/src/main/java/org/keycloak/exportimport/util/ImportUtils.java b/export-import/export-import-api/src/main/java/org/keycloak/exportimport/util/ImportUtils.java
index 3bf9d4645c..b109dc3558 100755
--- a/export-import/export-import-api/src/main/java/org/keycloak/exportimport/util/ImportUtils.java
+++ b/export-import/export-import-api/src/main/java/org/keycloak/exportimport/util/ImportUtils.java
@@ -119,7 +119,7 @@ public class ImportUtils {
}
adminRole.setDescription("${role_"+AdminRoles.ADMIN+"}");
- ClientModel realmAdminApp = KeycloakModelUtils.createApplication(adminRealm, KeycloakModelUtils.getMasterRealmAdminApplicationName(realm));
+ ClientModel realmAdminApp = KeycloakModelUtils.createClient(adminRealm, KeycloakModelUtils.getMasterRealmAdminApplicationName(realm));
realmAdminApp.setBearerOnly(true);
realm.setMasterAdminApp(realmAdminApp);
diff --git a/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/ApplicationResource.java b/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/ClientResource.java
similarity index 92%
rename from integration/admin-client/src/main/java/org/keycloak/admin/client/resource/ApplicationResource.java
rename to integration/admin-client/src/main/java/org/keycloak/admin/client/resource/ClientResource.java
index 2601d5328a..0bc8ad70a6 100755
--- a/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/ApplicationResource.java
+++ b/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/ClientResource.java
@@ -1,6 +1,7 @@
package org.keycloak.admin.client.resource;
import org.keycloak.representations.idm.ApplicationRepresentation;
+import org.keycloak.representations.idm.ClientRepresentation;
import org.keycloak.representations.idm.CredentialRepresentation;
import org.keycloak.representations.idm.UserSessionRepresentation;
@@ -21,18 +22,18 @@ import java.util.Set;
/**
* @author rodrigo.sasaki@icarros.com.br
*/
-public interface ApplicationResource {
+public interface ClientResource {
@Path("protocol-mappers")
public ProtocolMappersResource getProtocolMappers();
@GET
@Produces(MediaType.APPLICATION_JSON)
- public ApplicationRepresentation toRepresentation();
+ public ClientRepresentation toRepresentation();
@PUT
@Consumes(MediaType.APPLICATION_JSON)
- public void update(ApplicationRepresentation applicationRepresentation);
+ public void update(ClientRepresentation clientRepresentation);
@DELETE
public void remove();
diff --git a/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/ApplicationsResource.java b/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/ClientsResource.java
similarity index 71%
rename from integration/admin-client/src/main/java/org/keycloak/admin/client/resource/ApplicationsResource.java
rename to integration/admin-client/src/main/java/org/keycloak/admin/client/resource/ClientsResource.java
index 6ccbdd8643..abc94243a4 100755
--- a/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/ApplicationsResource.java
+++ b/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/ClientsResource.java
@@ -1,6 +1,7 @@
package org.keycloak.admin.client.resource;
import org.keycloak.representations.idm.ApplicationRepresentation;
+import org.keycloak.representations.idm.ClientRepresentation;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
@@ -14,14 +15,14 @@ import java.util.List;
/**
* @author rodrigo.sasaki@icarros.com.br
*/
-public interface ApplicationsResource {
+public interface ClientsResource {
@Path("{appName}")
- public ApplicationResource get(@PathParam("appName") String appName);
+ public ClientResource get(@PathParam("appName") String appName);
@POST
@Consumes(MediaType.APPLICATION_JSON)
- public void create(ApplicationRepresentation applicationRepresentation);
+ public void create(ClientRepresentation clientRepresentation);
@GET
@Produces(MediaType.APPLICATION_JSON)
diff --git a/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/RealmResource.java b/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/RealmResource.java
index b40cc13806..8cd1d90d5c 100644
--- a/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/RealmResource.java
+++ b/integration/admin-client/src/main/java/org/keycloak/admin/client/resource/RealmResource.java
@@ -24,7 +24,7 @@ public interface RealmResource {
public void update(RealmRepresentation realmRepresentation);
@Path("applications")
- public ApplicationsResource applications();
+ public ClientsResource clients();
@Path("users")
public UsersResource users();
diff --git a/model/api/src/main/java/org/keycloak/models/utils/KeycloakModelUtils.java b/model/api/src/main/java/org/keycloak/models/utils/KeycloakModelUtils.java
index 71d9ae7008..bd03cac67e 100755
--- a/model/api/src/main/java/org/keycloak/models/utils/KeycloakModelUtils.java
+++ b/model/api/src/main/java/org/keycloak/models/utils/KeycloakModelUtils.java
@@ -172,7 +172,7 @@ public final class KeycloakModelUtils {
return UUID.randomUUID().toString();
}
- public static ClientModel createApplication(RealmModel realm, String name) {
+ public static ClientModel createClient(RealmModel realm, String name) {
ClientModel app = realm.addClient(name);
generateSecret(app);
app.setFullScopeAllowed(true);
diff --git a/model/api/src/main/java/org/keycloak/models/utils/ModelToRepresentation.java b/model/api/src/main/java/org/keycloak/models/utils/ModelToRepresentation.java
index 09fc0a569e..f9e3556d77 100755
--- a/model/api/src/main/java/org/keycloak/models/utils/ModelToRepresentation.java
+++ b/model/api/src/main/java/org/keycloak/models/utils/ModelToRepresentation.java
@@ -15,6 +15,7 @@ import org.keycloak.models.UserModel;
import org.keycloak.models.UserSessionModel;
import org.keycloak.representations.idm.ApplicationRepresentation;
import org.keycloak.representations.idm.ClientIdentityProviderMappingRepresentation;
+import org.keycloak.representations.idm.ClientRepresentation;
import org.keycloak.representations.idm.CredentialRepresentation;
import org.keycloak.representations.idm.FederatedIdentityRepresentation;
import org.keycloak.representations.idm.IdentityProviderRepresentation;
@@ -217,10 +218,10 @@ public class ModelToRepresentation {
return rep;
}
- public static ApplicationRepresentation toRepresentation(ClientModel clientModel) {
- ApplicationRepresentation rep = new ApplicationRepresentation();
+ public static ClientRepresentation toRepresentation(ClientModel clientModel) {
+ ClientRepresentation rep = new ClientRepresentation();
rep.setId(clientModel.getId());
- rep.setName(clientModel.getClientId());
+ rep.setClientId(clientModel.getClientId());
rep.setEnabled(clientModel.isEnabled());
rep.setAdminUrl(clientModel.getManagementUrl());
rep.setPublicClient(clientModel.isPublicClient());
@@ -237,12 +238,12 @@ public class ModelToRepresentation {
Set redirectUris = clientModel.getRedirectUris();
if (redirectUris != null) {
- rep.setRedirectUris(new LinkedList(redirectUris));
+ rep.setRedirectUris(new LinkedList<>(redirectUris));
}
Set webOrigins = clientModel.getWebOrigins();
if (webOrigins != null) {
- rep.setWebOrigins(new LinkedList(webOrigins));
+ rep.setWebOrigins(new LinkedList<>(webOrigins));
}
if (!clientModel.getDefaultRoles().isEmpty()) {
@@ -250,7 +251,7 @@ public class ModelToRepresentation {
}
if (!clientModel.getRegisteredNodes().isEmpty()) {
- rep.setRegisteredNodes(new HashMap(clientModel.getRegisteredNodes()));
+ rep.setRegisteredNodes(new HashMap<>(clientModel.getRegisteredNodes()));
}
if (!clientModel.getIdentityProviders().isEmpty()) {
@@ -258,7 +259,7 @@ public class ModelToRepresentation {
}
if (!clientModel.getProtocolMappers().isEmpty()) {
- List mappings = new LinkedList();
+ List mappings = new LinkedList<>();
for (ProtocolMapperModel model : clientModel.getProtocolMappers()) {
mappings.add(toRepresentation(model));
}
diff --git a/model/api/src/main/java/org/keycloak/models/utils/RepresentationToModel.java b/model/api/src/main/java/org/keycloak/models/utils/RepresentationToModel.java
index 66c75b6395..cf8de18d16 100755
--- a/model/api/src/main/java/org/keycloak/models/utils/RepresentationToModel.java
+++ b/model/api/src/main/java/org/keycloak/models/utils/RepresentationToModel.java
@@ -22,6 +22,7 @@ import org.keycloak.models.UserModel;
import org.keycloak.representations.idm.ApplicationRepresentation;
import org.keycloak.representations.idm.ClaimRepresentation;
import org.keycloak.representations.idm.ClientIdentityProviderMappingRepresentation;
+import org.keycloak.representations.idm.ClientRepresentation;
import org.keycloak.representations.idm.CredentialRepresentation;
import org.keycloak.representations.idm.FederatedIdentityRepresentation;
import org.keycloak.representations.idm.IdentityProviderRepresentation;
@@ -50,6 +51,7 @@ public class RepresentationToModel {
public static void importRealm(KeycloakSession session, RealmRepresentation rep, RealmModel newRealm) {
convertDeprecatedSocialProviders(rep);
+ convertDeprecatedApplications(session, rep);
newRealm.setName(rep.getRealm());
if (rep.isEnabled() != null) newRealm.setEnabled(rep.isEnabled());
@@ -127,8 +129,8 @@ public class RepresentationToModel {
importIdentityProviders(rep, newRealm);
- if (rep.getApplications() != null) {
- Map appMap = createApplications(session, rep, newRealm);
+ if (rep.getClients() != null) {
+ createClients(session, rep, newRealm);
}
if (rep.getRoles() != null) {
@@ -177,22 +179,17 @@ public class RepresentationToModel {
newRealm.addDefaultRole(roleString.trim());
}
}
- // Setup application default roles
- if (rep.getApplications() != null) {
- for (ApplicationRepresentation resourceRep : rep.getApplications()) {
+ // Setup client default roles
+ if (rep.getClients() != null) {
+ for (ClientRepresentation resourceRep : rep.getClients()) {
if (resourceRep.getDefaultRoles() != null) {
- ClientModel appModel = newRealm.getClientByClientId(resourceRep.getName());
- appModel.updateDefaultRoles(resourceRep.getDefaultRoles());
+ ClientModel clientModel = newRealm.getClientByClientId(resourceRep.getClientId());
+ clientModel.updateDefaultRoles(resourceRep.getDefaultRoles());
}
}
}
- if (rep.getOauthClients() != null) {
- createOAuthClients(session, rep, newRealm);
- }
-
-
- // Now that all possible roles and applications are created, create scope mappings
+ // Now that all possible roles and clients are created, create scope mappings
Map appMap = newRealm.getClientNameMap();
@@ -201,9 +198,9 @@ public class RepresentationToModel {
for (Map.Entry> entry : rep.getApplicationScopeMappings().entrySet()) {
ClientModel app = appMap.get(entry.getKey());
if (app == null) {
- throw new RuntimeException("Unable to find application role mappings for app: " + entry.getKey());
+ throw new RuntimeException("Unable to find client role mappings for client: " + entry.getKey());
}
- createApplicationScopeMappings(newRealm, app, entry.getValue());
+ createClientScopeMappings(newRealm, app, entry.getValue());
}
}
@@ -312,15 +309,41 @@ public class RepresentationToModel {
user.setSocialLinks(null);
}
- private static List convertDeprecatedClaimsMask(KeycloakSession session, ClaimRepresentation claimRep) {
- if (claimRep == null) {
- return null;
- }
+ private static void convertDeprecatedApplications(KeycloakSession session, RealmRepresentation realm) {
+ if (realm.getApplications() != null || realm.getOauthClients() != null) {
+ if (realm.getClients() == null) {
+ realm.setClients(new LinkedList());
+ }
- logger.warn("Using deprecated 'claims' configuration in JSON representation. It will be removed in future versions");
- long mask = getClaimsMask(claimRep);
- MigrationProvider migrationProvider = session.getProvider(MigrationProvider.class);
- return migrationProvider.getMappersForClaimMask(mask);
+ List clients = new LinkedList<>();
+ if (realm.getApplications() != null) {
+ clients.addAll(realm.getApplications());
+ }
+ if (realm.getOauthClients() != null) {
+ clients.addAll(realm.getOauthClients());
+ }
+
+ for (ApplicationRepresentation app : clients) {
+ app.setClientId(app.getName());
+ app.setName(null);
+
+ if (app instanceof OAuthClientRepresentation) {
+ app.setConsentRequired(true);
+ app.setFullScopeAllowed(false);
+ }
+
+ if (app.getProtocolMappers() == null && app.getClaims() != null) {
+ long mask = getClaimsMask(app.getClaims());
+ List convertedProtocolMappers = session.getProvider(MigrationProvider.class).getMappersForClaimMask(mask);
+ app.setProtocolMappers(convertedProtocolMappers);
+ app.setClaims(null);
+ }
+
+ realm.getClients().add(app);
+ }
+
+ realm.setApplications(null);
+ }
}
public static void updateRealm(RealmRepresentation rep, RealmModel realm) {
@@ -450,10 +473,10 @@ public class RepresentationToModel {
// APPLICATIONS
- private static Map createApplications(KeycloakSession session, RealmRepresentation rep, RealmModel realm) {
+ private static Map createClients(KeycloakSession session, RealmRepresentation rep, RealmModel realm) {
Map appMap = new HashMap();
- for (ApplicationRepresentation resourceRep : rep.getApplications()) {
- ClientModel app = createApplication(session, realm, resourceRep, false);
+ for (ClientRepresentation resourceRep : rep.getClients()) {
+ ClientModel app = createClient(session, realm, resourceRep, false);
appMap.put(app.getClientId(), app);
}
return appMap;
@@ -466,63 +489,57 @@ public class RepresentationToModel {
* @param resourceRep
* @return
*/
- public static ClientModel createApplication(KeycloakSession session, RealmModel realm, ApplicationRepresentation resourceRep, boolean addDefaultRoles) {
- logger.debug("************ CREATE APPLICATION: {0}" + resourceRep.getName());
+ public static ClientModel createClient(KeycloakSession session, RealmModel realm, ClientRepresentation resourceRep, boolean addDefaultRoles) {
+ logger.debug("************ CREATE APPLICATION: {0}" + resourceRep.getClientId());
- if (resourceRep.getProtocolMappers() == null) {
- List convertedProtocolMappers = convertDeprecatedClaimsMask(session, resourceRep.getClaims());
- if (convertedProtocolMappers != null) {
- resourceRep.setProtocolMappers(convertedProtocolMappers);
- }
- }
-
- ClientModel applicationModel = resourceRep.getId()!=null ? realm.addClient(resourceRep.getId(), resourceRep.getName()) : realm.addClient(resourceRep.getName());
- if (resourceRep.isEnabled() != null) applicationModel.setEnabled(resourceRep.isEnabled());
- applicationModel.setManagementUrl(resourceRep.getAdminUrl());
+ ClientModel client = resourceRep.getId()!=null ? realm.addClient(resourceRep.getId(), resourceRep.getClientId()) : realm.addClient(resourceRep.getClientId());
+ if (resourceRep.isEnabled() != null) client.setEnabled(resourceRep.isEnabled());
+ client.setManagementUrl(resourceRep.getAdminUrl());
if (resourceRep.isSurrogateAuthRequired() != null)
- applicationModel.setSurrogateAuthRequired(resourceRep.isSurrogateAuthRequired());
- applicationModel.setBaseUrl(resourceRep.getBaseUrl());
- if (resourceRep.isBearerOnly() != null) applicationModel.setBearerOnly(resourceRep.isBearerOnly());
- if (resourceRep.isPublicClient() != null) applicationModel.setPublicClient(resourceRep.isPublicClient());
- if (resourceRep.isFrontchannelLogout() != null) applicationModel.setFrontchannelLogout(resourceRep.isFrontchannelLogout());
- if (resourceRep.getProtocol() != null) applicationModel.setProtocol(resourceRep.getProtocol());
+ client.setSurrogateAuthRequired(resourceRep.isSurrogateAuthRequired());
+ client.setBaseUrl(resourceRep.getBaseUrl());
+ if (resourceRep.isBearerOnly() != null) client.setBearerOnly(resourceRep.isBearerOnly());
+ if (resourceRep.isConsentRequired() != null) client.setConsentRequired(resourceRep.isConsentRequired());
+ if (resourceRep.isPublicClient() != null) client.setPublicClient(resourceRep.isPublicClient());
+ if (resourceRep.isFrontchannelLogout() != null) client.setFrontchannelLogout(resourceRep.isFrontchannelLogout());
+ if (resourceRep.getProtocol() != null) client.setProtocol(resourceRep.getProtocol());
if (resourceRep.isFullScopeAllowed() != null) {
- applicationModel.setFullScopeAllowed(resourceRep.isFullScopeAllowed());
+ client.setFullScopeAllowed(resourceRep.isFullScopeAllowed());
} else {
- applicationModel.setFullScopeAllowed(true);
+ client.setFullScopeAllowed(true);
}
if (resourceRep.getNodeReRegistrationTimeout() != null) {
- applicationModel.setNodeReRegistrationTimeout(resourceRep.getNodeReRegistrationTimeout());
+ client.setNodeReRegistrationTimeout(resourceRep.getNodeReRegistrationTimeout());
} else {
- applicationModel.setNodeReRegistrationTimeout(-1);
+ client.setNodeReRegistrationTimeout(-1);
}
- applicationModel.updateApplication();
+ client.updateApplication();
if (resourceRep.getNotBefore() != null) {
- applicationModel.setNotBefore(resourceRep.getNotBefore());
+ client.setNotBefore(resourceRep.getNotBefore());
}
- applicationModel.setSecret(resourceRep.getSecret());
- if (applicationModel.getSecret() == null) {
- KeycloakModelUtils.generateSecret(applicationModel);
+ client.setSecret(resourceRep.getSecret());
+ if (client.getSecret() == null) {
+ KeycloakModelUtils.generateSecret(client);
}
if (resourceRep.getAttributes() != null) {
for (Map.Entry entry : resourceRep.getAttributes().entrySet()) {
- applicationModel.setAttribute(entry.getKey(), entry.getValue());
+ client.setAttribute(entry.getKey(), entry.getValue());
}
}
if (resourceRep.getRedirectUris() != null) {
for (String redirectUri : resourceRep.getRedirectUris()) {
- applicationModel.addRedirectUri(redirectUri);
+ client.addRedirectUri(redirectUri);
}
}
if (resourceRep.getWebOrigins() != null) {
for (String webOrigin : resourceRep.getWebOrigins()) {
- logger.debugv("Application: {0} webOrigin: {1}", resourceRep.getName(), webOrigin);
- applicationModel.addWebOrigin(webOrigin);
+ logger.debugv("Application: {0} webOrigin: {1}", resourceRep.getClientId(), webOrigin);
+ client.addWebOrigin(webOrigin);
}
} else {
// add origins from redirect uris
@@ -541,38 +558,38 @@ public class RepresentationToModel {
}
}
if (origins.size() > 0) {
- applicationModel.setWebOrigins(origins);
+ client.setWebOrigins(origins);
}
}
}
if (resourceRep.getRegisteredNodes() != null) {
for (Map.Entry entry : resourceRep.getRegisteredNodes().entrySet()) {
- applicationModel.registerNode(entry.getKey(), entry.getValue());
+ client.registerNode(entry.getKey(), entry.getValue());
}
}
if (addDefaultRoles && resourceRep.getDefaultRoles() != null) {
- applicationModel.updateDefaultRoles(resourceRep.getDefaultRoles());
+ client.updateDefaultRoles(resourceRep.getDefaultRoles());
}
if (resourceRep.getProtocolMappers() != null) {
// first, remove all default/built in mappers
- Set mappers = applicationModel.getProtocolMappers();
- for (ProtocolMapperModel mapper : mappers) applicationModel.removeProtocolMapper(mapper);
+ Set mappers = client.getProtocolMappers();
+ for (ProtocolMapperModel mapper : mappers) client.removeProtocolMapper(mapper);
for (ProtocolMapperRepresentation mapper : resourceRep.getProtocolMappers()) {
- applicationModel.addProtocolMapper(toModel(mapper));
+ client.addProtocolMapper(toModel(mapper));
}
}
- applicationModel.updateIdentityProviders(toModel(resourceRep.getIdentityProviders(), realm));
+ client.updateIdentityProviders(toModel(resourceRep.getIdentityProviders(), realm));
- return applicationModel;
+ return client;
}
- public static void updateApplication(ApplicationRepresentation rep, ClientModel resource) {
- if (rep.getName() != null) resource.setClientId(rep.getName());
+ public static void updateClient(ClientRepresentation rep, ClientModel resource) {
+ if (rep.getClientId() != null) resource.setClientId(rep.getClientId());
if (rep.isEnabled() != null) resource.setEnabled(rep.isEnabled());
if (rep.isBearerOnly() != null) resource.setBearerOnly(rep.isBearerOnly());
if (rep.isConsentRequired() != null) resource.setConsentRequired(rep.isConsentRequired());
@@ -675,94 +692,18 @@ public class RepresentationToModel {
return mask;
}
- // OAuth clients
-
- private static void createOAuthClients(KeycloakSession session, RealmRepresentation realmRep, RealmModel realm) {
- for (OAuthClientRepresentation rep : realmRep.getOauthClients()) {
- createOAuthClient(session, rep, realm);
- }
- }
-
- public static ClientModel createOAuthClient(String id, String name, RealmModel realm) {
- ClientModel model = id!=null ? realm.addClient(id, name) : realm.addClient(name);
- model.setConsentRequired(true);
- KeycloakModelUtils.generateSecret(model);
- return model;
- }
-
- public static ClientModel createOAuthClient(KeycloakSession session, OAuthClientRepresentation rep, RealmModel realm) {
- ClientModel model = createOAuthClient(rep.getId(), rep.getName(), realm);
-
- model.updateIdentityProviders(toModel(rep.getIdentityProviders(), realm));
-
- updateOAuthClient(session, rep, model);
- return model;
- }
-
- public static void updateOAuthClient(KeycloakSession session, OAuthClientRepresentation rep, ClientModel model) {
- if (rep.getProtocolMappers() == null) {
- List convertedProtocolMappers = convertDeprecatedClaimsMask(session, rep.getClaims());
- if (convertedProtocolMappers != null) {
- rep.setProtocolMappers(convertedProtocolMappers);
- }
- }
-
- if (rep.getName() != null) model.setClientId(rep.getName());
- if (rep.isEnabled() != null) model.setEnabled(rep.isEnabled());
- if (rep.isPublicClient() != null) model.setPublicClient(rep.isPublicClient());
- if (rep.isFrontchannelLogout() != null) model.setFrontchannelLogout(rep.isFrontchannelLogout());
- if (rep.isFullScopeAllowed() != null) model.setFullScopeAllowed(rep.isFullScopeAllowed());
- if (rep.isDirectGrantsOnly() != null) model.setDirectGrantsOnly(rep.isDirectGrantsOnly());
- if (rep.getNotBefore() != null) {
- model.setNotBefore(rep.getNotBefore());
- }
- if (rep.getSecret() != null) model.setSecret(rep.getSecret());
- List redirectUris = rep.getRedirectUris();
- if (redirectUris != null) {
- model.setRedirectUris(new HashSet(redirectUris));
- }
-
- List webOrigins = rep.getWebOrigins();
- if (webOrigins != null) {
- model.setWebOrigins(new HashSet(webOrigins));
- }
-
- if (rep.getNotBefore() != null) {
- model.setNotBefore(rep.getNotBefore());
- }
- if (rep.getProtocol() != null) model.setProtocol(rep.getProtocol());
- if (rep.getAttributes() != null) {
- for (Map.Entry entry : rep.getAttributes().entrySet()) {
- model.setAttribute(entry.getKey(), entry.getValue());
- }
- }
-
- updateClientIdentityProviders(rep.getIdentityProviders(), model);
-
- if (rep.getProtocolMappers() != null) {
- // first, remove all default/built in mappers
- Set mappers = model.getProtocolMappers();
- for (ProtocolMapperModel mapper : mappers) model.removeProtocolMapper(mapper);
-
- for (ProtocolMapperRepresentation mapper : rep.getProtocolMappers()) {
- model.addProtocolMapper(toModel(mapper));
- }
- }
-
- }
-
// Scope mappings
- public static void createApplicationScopeMappings(RealmModel realm, ClientModel applicationModel, List mappings) {
+ public static void createClientScopeMappings(RealmModel realm, ClientModel clientModel, List mappings) {
for (ScopeMappingRepresentation mapping : mappings) {
ClientModel client = realm.getClientByClientId(mapping.getClient());
if (client == null) {
throw new RuntimeException("Unknown client specified in application scope mappings");
}
for (String roleString : mapping.getRoles()) {
- RoleModel role = applicationModel.getRole(roleString.trim());
+ RoleModel role = clientModel.getRole(roleString.trim());
if (role == null) {
- role = applicationModel.addRole(roleString.trim());
+ role = clientModel.addRole(roleString.trim());
}
client.addScopeMapping(role);
}
@@ -771,7 +712,7 @@ public class RepresentationToModel {
// Users
- public static UserModel createUser(KeycloakSession session, RealmModel newRealm, UserRepresentation userRep, Map appMap) {
+ public static UserModel createUser(KeycloakSession session, RealmModel newRealm, UserRepresentation userRep, Map clientMap) {
convertDeprecatedSocialProviders(userRep);
// Import users just to user storage. Don't federate
@@ -814,11 +755,11 @@ public class RepresentationToModel {
}
if (userRep.getApplicationRoles() != null) {
for (Map.Entry> entry : userRep.getApplicationRoles().entrySet()) {
- ClientModel app = appMap.get(entry.getKey());
- if (app == null) {
- throw new RuntimeException("Unable to find application role mappings for app: " + entry.getKey());
+ ClientModel client = clientMap.get(entry.getKey());
+ if (client == null) {
+ throw new RuntimeException("Unable to find client role mappings for client: " + entry.getKey());
}
- createApplicationRoleMappings(app, user, entry.getValue());
+ createClientRoleMappings(client, user, entry.getValue());
}
}
return user;
@@ -853,7 +794,7 @@ public class RepresentationToModel {
// Role mappings
- public static void createApplicationRoleMappings(ClientModel applicationModel, UserModel user, List roleNames) {
+ public static void createClientRoleMappings(ClientModel applicationModel, UserModel user, List roleNames) {
if (user == null) {
throw new RuntimeException("User not found");
}
diff --git a/services/src/main/java/org/keycloak/services/managers/ApplicationManager.java b/services/src/main/java/org/keycloak/services/managers/ClientManager.java
similarity index 85%
rename from services/src/main/java/org/keycloak/services/managers/ApplicationManager.java
rename to services/src/main/java/org/keycloak/services/managers/ClientManager.java
index b7baf9ab5c..18d4d09051 100755
--- a/services/src/main/java/org/keycloak/services/managers/ApplicationManager.java
+++ b/services/src/main/java/org/keycloak/services/managers/ClientManager.java
@@ -24,27 +24,27 @@ import java.util.TreeSet;
* @author Bill Burke
* @version $Revision: 1 $
*/
-public class ApplicationManager {
- protected Logger logger = Logger.getLogger(ApplicationManager.class);
+public class ClientManager {
+ protected Logger logger = Logger.getLogger(ClientManager.class);
protected RealmManager realmManager;
- public ApplicationManager(RealmManager realmManager) {
+ public ClientManager(RealmManager realmManager) {
this.realmManager = realmManager;
}
- public ApplicationManager() {
+ public ClientManager() {
}
- public ClientModel createApplication(RealmModel realm, String name) {
- return KeycloakModelUtils.createApplication(realm, name);
+ public ClientModel createClient(RealmModel realm, String name) {
+ return KeycloakModelUtils.createClient(realm, name);
}
- public boolean removeApplication(RealmModel realm, ClientModel application) {
- if (realm.removeClient(application.getId())) {
+ public boolean removeClient(RealmModel realm, ClientModel client) {
+ if (realm.removeClient(client.getId())) {
UserSessionProvider sessions = realmManager.getSession().sessions();
if (sessions != null) {
- sessions.onClientRemoved(realm, application);
+ sessions.onClientRemoved(realm, client);
}
return true;
} else {
@@ -52,8 +52,8 @@ public class ApplicationManager {
}
}
- public Set validateRegisteredNodes(ClientModel application) {
- Map registeredNodes = application.getRegisteredNodes();
+ public Set validateRegisteredNodes(ClientModel client) {
+ Map registeredNodes = client.getRegisteredNodes();
if (registeredNodes == null || registeredNodes.isEmpty()) {
return Collections.emptySet();
}
@@ -61,11 +61,11 @@ public class ApplicationManager {
int currentTime = Time.currentTime();
Set validatedNodes = new TreeSet();
- if (application.getNodeReRegistrationTimeout() > 0) {
+ if (client.getNodeReRegistrationTimeout() > 0) {
List toRemove = new LinkedList();
for (Map.Entry entry : registeredNodes.entrySet()) {
Integer lastReRegistration = entry.getValue();
- if (lastReRegistration + application.getNodeReRegistrationTimeout() < currentTime) {
+ if (lastReRegistration + client.getNodeReRegistrationTimeout() < currentTime) {
toRemove.add(entry.getKey());
} else {
validatedNodes.add(entry.getKey());
@@ -74,7 +74,7 @@ public class ApplicationManager {
// Remove time-outed nodes
for (String node : toRemove) {
- application.unregisterNode(node);
+ client.unregisterNode(node);
}
} else {
// Periodic node reRegistration is disabled, so allow all nodes
diff --git a/services/src/main/java/org/keycloak/services/managers/RealmManager.java b/services/src/main/java/org/keycloak/services/managers/RealmManager.java
index f372bbd18b..4a03c26dbd 100755
--- a/services/src/main/java/org/keycloak/services/managers/RealmManager.java
+++ b/services/src/main/java/org/keycloak/services/managers/RealmManager.java
@@ -91,7 +91,7 @@ public class RealmManager {
protected void setupAdminConsole(RealmModel realm) {
ClientModel adminConsole = realm.getClientByClientId(Constants.ADMIN_CONSOLE_APPLICATION);
- if (adminConsole == null) adminConsole = new ApplicationManager(this).createApplication(realm, Constants.ADMIN_CONSOLE_APPLICATION);
+ if (adminConsole == null) adminConsole = new ClientManager(this).createClient(realm, Constants.ADMIN_CONSOLE_APPLICATION);
String baseUrl = contextPath + "/admin/" + realm.getName() + "/console";
adminConsole.setBaseUrl(baseUrl + "/index.html");
adminConsole.setEnabled(true);
@@ -139,7 +139,7 @@ public class RealmManager {
boolean removed = model.removeRealm(realm.getId());
if (removed) {
- new ApplicationManager(this).removeApplication(getKeycloakAdminstrationRealm(), realm.getMasterAdminApp());
+ new ClientManager(this).removeClient(getKeycloakAdminstrationRealm(), realm.getMasterAdminApp());
UserSessionProvider sessions = session.sessions();
if (sessions != null) {
@@ -174,12 +174,12 @@ public class RealmManager {
private void setupRealmAdminManagement(RealmModel realm) {
if (realm.getName().equals(Config.getAdminRealm())) { return; } // don't need to do this for master realm
- ApplicationManager applicationManager = new ApplicationManager(new RealmManager(session));
+ ClientManager clientManager = new ClientManager(new RealmManager(session));
String realmAdminApplicationName = getRealmAdminApplicationName(realm);
ClientModel realmAdminApp = realm.getClientByClientId(realmAdminApplicationName);
if (realmAdminApp == null) {
- realmAdminApp = applicationManager.createApplication(realm, realmAdminApplicationName);
+ realmAdminApp = clientManager.createClient(realm, realmAdminApplicationName);
}
RoleModel adminRole = realmAdminApp.addRole(AdminRoles.REALM_ADMIN);
adminRole.setDescription("${role_"+AdminRoles.REALM_ADMIN+"}");
@@ -197,7 +197,7 @@ public class RealmManager {
private void setupAccountManagement(RealmModel realm) {
ClientModel application = realm.getClientNameMap().get(Constants.ACCOUNT_MANAGEMENT_APP);
if (application == null) {
- application = new ApplicationManager(this).createApplication(realm, Constants.ACCOUNT_MANAGEMENT_APP);
+ application = new ClientManager(this).createClient(realm, Constants.ACCOUNT_MANAGEMENT_APP);
application.setEnabled(true);
application.setFullScopeAllowed(false);
String base = contextPath + "/realms/" + realm.getName() + "/account";
diff --git a/services/src/main/java/org/keycloak/services/managers/ResourceAdminManager.java b/services/src/main/java/org/keycloak/services/managers/ResourceAdminManager.java
index 5c4e44310b..fa219d6725 100755
--- a/services/src/main/java/org/keycloak/services/managers/ResourceAdminManager.java
+++ b/services/src/main/java/org/keycloak/services/managers/ResourceAdminManager.java
@@ -78,7 +78,7 @@ public class ResourceAdminManager {
return Collections.emptyList();
}
- Set registeredNodesHosts = new ApplicationManager().validateRegisteredNodes(application);
+ Set registeredNodesHosts = new ClientManager().validateRegisteredNodes(application);
// No-cluster setup
if (registeredNodesHosts.isEmpty()) {
diff --git a/services/src/main/java/org/keycloak/services/resources/admin/AdminConsole.java b/services/src/main/java/org/keycloak/services/resources/admin/AdminConsole.java
index 3dcffdea18..bfe70da898 100755
--- a/services/src/main/java/org/keycloak/services/resources/admin/AdminConsole.java
+++ b/services/src/main/java/org/keycloak/services/resources/admin/AdminConsole.java
@@ -22,7 +22,7 @@ import org.keycloak.models.RoleModel;
import org.keycloak.models.UserModel;
import org.keycloak.protocol.oidc.OIDCLoginProtocolService;
import org.keycloak.services.managers.AppAuthManager;
-import org.keycloak.services.managers.ApplicationManager;
+import org.keycloak.services.managers.ClientManager;
import org.keycloak.services.managers.AuthenticationManager;
import org.keycloak.services.managers.RealmManager;
import org.keycloak.services.resources.KeycloakApplication;
@@ -153,12 +153,12 @@ public class AdminConsole {
@GET
@Produces("application/json")
@NoCache
- public ApplicationManager.InstallationAdapterConfig config() {
+ public ClientManager.InstallationAdapterConfig config() {
ClientModel consoleApp = realm.getClientByClientId(Constants.ADMIN_CONSOLE_APPLICATION);
if (consoleApp == null) {
throw new NotFoundException("Could not find admin console application");
}
- return new ApplicationManager().toInstallationRepresentation(realm, consoleApp, keycloak.getBaseUri(uriInfo));
+ return new ClientManager().toInstallationRepresentation(realm, consoleApp, keycloak.getBaseUri(uriInfo));
}
diff --git a/services/src/main/java/org/keycloak/services/resources/admin/ApplicationResource.java b/services/src/main/java/org/keycloak/services/resources/admin/ClientResource.java
similarity index 80%
rename from services/src/main/java/org/keycloak/services/resources/admin/ApplicationResource.java
rename to services/src/main/java/org/keycloak/services/resources/admin/ClientResource.java
index 7a5e2b5953..8c689757ad 100755
--- a/services/src/main/java/org/keycloak/services/resources/admin/ApplicationResource.java
+++ b/services/src/main/java/org/keycloak/services/resources/admin/ClientResource.java
@@ -17,9 +17,10 @@ import org.keycloak.models.utils.ModelToRepresentation;
import org.keycloak.models.utils.RepresentationToModel;
import org.keycloak.representations.adapters.action.GlobalRequestResult;
import org.keycloak.representations.idm.ApplicationRepresentation;
+import org.keycloak.representations.idm.ClientRepresentation;
import org.keycloak.representations.idm.CredentialRepresentation;
import org.keycloak.representations.idm.UserSessionRepresentation;
-import org.keycloak.services.managers.ApplicationManager;
+import org.keycloak.services.managers.ClientManager;
import org.keycloak.services.managers.RealmManager;
import org.keycloak.services.managers.ResourceAdminManager;
import org.keycloak.services.resources.KeycloakApplication;
@@ -53,11 +54,11 @@ import java.util.Set;
* @author Bill Burke
* @version $Revision: 1 $
*/
-public class ApplicationResource {
- protected static final Logger logger = Logger.getLogger(ApplicationResource.class);
+public class ClientResource {
+ protected static final Logger logger = Logger.getLogger(ClientResource.class);
protected RealmModel realm;
private RealmAuth auth;
- protected ClientModel application;
+ protected ClientModel client;
protected KeycloakSession session;
@Context
@@ -70,10 +71,10 @@ public class ApplicationResource {
return keycloak;
}
- public ApplicationResource(RealmModel realm, RealmAuth auth, ClientModel clientModel, KeycloakSession session) {
+ public ClientResource(RealmModel realm, RealmAuth auth, ClientModel clientModel, KeycloakSession session) {
this.realm = realm;
this.auth = auth;
- this.application = clientModel;
+ this.client = clientModel;
this.session = session;
auth.init(RealmAuth.Resource.CLIENT);
@@ -81,7 +82,7 @@ public class ApplicationResource {
@Path("protocol-mappers")
public ProtocolMappersResource getProtocolMappers() {
- ProtocolMappersResource mappers = new ProtocolMappersResource(application, auth);
+ ProtocolMappersResource mappers = new ProtocolMappersResource(client, auth);
ResteasyProviderFactory.getInstance().injectProperties(mappers);
return mappers;
}
@@ -93,14 +94,14 @@ public class ApplicationResource {
*/
@PUT
@Consumes(MediaType.APPLICATION_JSON)
- public Response update(final ApplicationRepresentation rep) {
+ public Response update(final ClientRepresentation rep) {
auth.requireManage();
try {
- RepresentationToModel.updateApplication(rep, application);
+ RepresentationToModel.updateClient(rep, client);
return Response.noContent().build();
} catch (ModelDuplicateException e) {
- return Flows.errors().exists("Application " + rep.getName() + " already exists");
+ return Flows.errors().exists("Client " + rep.getClientId() + " already exists");
}
}
@@ -113,10 +114,10 @@ public class ApplicationResource {
@GET
@NoCache
@Produces(MediaType.APPLICATION_JSON)
- public ApplicationRepresentation getApplication() {
+ public ClientRepresentation getClient() {
auth.requireView();
- return ModelToRepresentation.toRepresentation(application);
+ return ModelToRepresentation.toRepresentation(client);
}
/**
@@ -126,7 +127,7 @@ public class ApplicationResource {
*/
@Path("certificates/{attr}")
public ClientAttributeCertificateResource getCertficateResource(@PathParam("attr") String attributePrefix) {
- return new ClientAttributeCertificateResource(realm, auth, application, session, attributePrefix);
+ return new ClientAttributeCertificateResource(realm, auth, client, session, attributePrefix);
}
@@ -143,8 +144,8 @@ public class ApplicationResource {
public String getInstallation() throws IOException {
auth.requireView();
- ApplicationManager applicationManager = new ApplicationManager(new RealmManager(session));
- Object rep = applicationManager.toInstallationRepresentation(realm, application, getKeycloakApplication().getBaseUri(uriInfo));
+ ClientManager clientManager = new ClientManager(new RealmManager(session));
+ Object rep = clientManager.toInstallationRepresentation(realm, client, getKeycloakApplication().getBaseUri(uriInfo));
// TODO Temporary solution to pretty-print
return JsonSerialization.mapper.writerWithDefaultPrettyPrinter().writeValueAsString(rep);
@@ -163,8 +164,8 @@ public class ApplicationResource {
public String getJBossInstallation() throws IOException {
auth.requireView();
- ApplicationManager applicationManager = new ApplicationManager(new RealmManager(session));
- return applicationManager.toJBossSubsystemConfig(realm, application, getKeycloakApplication().getBaseUri(uriInfo));
+ ClientManager clientManager = new ClientManager(new RealmManager(session));
+ return clientManager.toJBossSubsystemConfig(realm, client, getKeycloakApplication().getBaseUri(uriInfo));
}
/**
@@ -175,7 +176,7 @@ public class ApplicationResource {
@NoCache
public void deleteApplication() {
auth.requireManage();
- new ApplicationManager(new RealmManager(session)).removeApplication(realm, application);
+ new ClientManager(new RealmManager(session)).removeClient(realm, client);
}
@@ -192,7 +193,7 @@ public class ApplicationResource {
auth.requireManage();
logger.debug("regenerateSecret");
- UserCredentialModel cred = KeycloakModelUtils.generateSecret(application);
+ UserCredentialModel cred = KeycloakModelUtils.generateSecret(client);
CredentialRepresentation rep = ModelToRepresentation.toRepresentation(cred);
return rep;
}
@@ -210,7 +211,7 @@ public class ApplicationResource {
auth.requireView();
logger.debug("getClientSecret");
- UserCredentialModel model = UserCredentialModel.secret(application.getSecret());
+ UserCredentialModel model = UserCredentialModel.secret(client.getSecret());
if (model == null) throw new NotFoundException("Application does not have a secret");
return ModelToRepresentation.toRepresentation(model);
}
@@ -222,12 +223,12 @@ public class ApplicationResource {
*/
@Path("scope-mappings")
public ScopeMappedResource getScopeMappedResource() {
- return new ScopeMappedResource(realm, auth, application, session);
+ return new ScopeMappedResource(realm, auth, client, session);
}
@Path("roles")
public RoleContainerResource getRoleContainerResource() {
- return new RoleContainerResource(realm, auth, application);
+ return new RoleContainerResource(realm, auth, client);
}
/**
@@ -244,7 +245,7 @@ public class ApplicationResource {
{
auth.requireView();
- return application.getWebOrigins();
+ return client.getWebOrigins();
}
/**
@@ -260,7 +261,7 @@ public class ApplicationResource {
{
auth.requireManage();
- application.setWebOrigins(allowedOrigins);
+ client.setWebOrigins(allowedOrigins);
}
/**
@@ -277,7 +278,7 @@ public class ApplicationResource {
auth.requireManage();
for (String origin : allowedOrigins) {
- application.removeWebOrigin(origin);
+ client.removeWebOrigin(origin);
}
}
@@ -289,7 +290,7 @@ public class ApplicationResource {
@POST
public GlobalRequestResult pushRevocation() {
auth.requireManage();
- return new ResourceAdminManager().pushApplicationRevocationPolicy(uriInfo.getRequestUri(), realm, application);
+ return new ResourceAdminManager().pushApplicationRevocationPolicy(uriInfo.getRequestUri(), realm, client);
}
/**
@@ -308,7 +309,7 @@ public class ApplicationResource {
public Map getApplicationSessionCount() {
auth.requireView();
Map map = new HashMap();
- map.put("count", session.sessions().getActiveUserSessions(application.getRealm(), application));
+ map.put("count", session.sessions().getActiveUserSessions(client.getRealm(), client));
return map;
}
@@ -326,7 +327,7 @@ public class ApplicationResource {
firstResult = firstResult != null ? firstResult : -1;
maxResults = maxResults != null ? maxResults : -1;
List sessions = new ArrayList();
- for (UserSessionModel userSession : session.sessions().getUserSessions(application.getRealm(), application, firstResult, maxResults)) {
+ for (UserSessionModel userSession : session.sessions().getUserSessions(client.getRealm(), client, firstResult, maxResults)) {
UserSessionRepresentation rep = ModelToRepresentation.toRepresentation(userSession);
sessions.add(rep);
}
@@ -341,7 +342,7 @@ public class ApplicationResource {
@POST
public GlobalRequestResult logoutAll() {
auth.requireManage();
- return new ResourceAdminManager().logoutApplication(uriInfo.getRequestUri(), realm, application);
+ return new ResourceAdminManager().logoutApplication(uriInfo.getRequestUri(), realm, client);
}
/**
@@ -356,7 +357,7 @@ public class ApplicationResource {
if (user == null) {
throw new NotFoundException("User not found");
}
- new ResourceAdminManager().logoutUserFromApplication(uriInfo.getRequestUri(), realm, application, user, session);
+ new ResourceAdminManager().logoutUserFromApplication(uriInfo.getRequestUri(), realm, client, user, session);
}
/**
@@ -375,7 +376,7 @@ public class ApplicationResource {
throw new BadRequestException("Node not found in params");
}
if (logger.isDebugEnabled()) logger.debug("Register node: " + node);
- application.registerNode(node, Time.currentTime());
+ client.registerNode(node, Time.currentTime());
}
/**
@@ -390,12 +391,12 @@ public class ApplicationResource {
auth.requireManage();
if (logger.isDebugEnabled()) logger.debug("Unregister node: " + node);
- Integer time = application.getRegisteredNodes().get(node);
+ Integer time = client.getRegisteredNodes().get(node);
if (time == null) {
throw new NotFoundException("Application does not have a node " + node);
}
- application.unregisterNode(node);
+ client.unregisterNode(node);
}
/**
@@ -410,7 +411,7 @@ public class ApplicationResource {
auth.requireManage();
logger.debug("Test availability of cluster nodes");
- return new ResourceAdminManager().testNodesAvailability(uriInfo.getRequestUri(), realm, application);
+ return new ResourceAdminManager().testNodesAvailability(uriInfo.getRequestUri(), realm, client);
}
}
diff --git a/services/src/main/java/org/keycloak/services/resources/admin/ApplicationsByIdResource.java b/services/src/main/java/org/keycloak/services/resources/admin/ClientsByIdResource.java
similarity index 56%
rename from services/src/main/java/org/keycloak/services/resources/admin/ApplicationsByIdResource.java
rename to services/src/main/java/org/keycloak/services/resources/admin/ClientsByIdResource.java
index d4b8f8fcdb..46f2f8774d 100755
--- a/services/src/main/java/org/keycloak/services/resources/admin/ApplicationsByIdResource.java
+++ b/services/src/main/java/org/keycloak/services/resources/admin/ClientsByIdResource.java
@@ -7,18 +7,18 @@ import org.keycloak.models.RealmModel;
* @author Bill Burke
* @version $Revision: 1 $
*/
-public class ApplicationsByIdResource extends ApplicationsResource {
- public ApplicationsByIdResource(RealmModel realm, RealmAuth auth) {
+public class ClientsByIdResource extends ClientsResource {
+ public ClientsByIdResource(RealmModel realm, RealmAuth auth) {
super(realm, auth);
}
@Override
- protected ClientModel getApplicationByPathParam(String id) {
+ protected ClientModel getClientByPathParam(String id) {
return realm.getClientById(id);
}
@Override
- protected String getApplicationPath(ClientModel clientModel) {
+ protected String getClientPath(ClientModel clientModel) {
return clientModel.getId();
}
diff --git a/services/src/main/java/org/keycloak/services/resources/admin/ApplicationsResource.java b/services/src/main/java/org/keycloak/services/resources/admin/ClientsResource.java
similarity index 60%
rename from services/src/main/java/org/keycloak/services/resources/admin/ApplicationsResource.java
rename to services/src/main/java/org/keycloak/services/resources/admin/ClientsResource.java
index 66ce8a815a..7432efb629 100755
--- a/services/src/main/java/org/keycloak/services/resources/admin/ApplicationsResource.java
+++ b/services/src/main/java/org/keycloak/services/resources/admin/ClientsResource.java
@@ -10,7 +10,7 @@ import org.keycloak.models.ModelDuplicateException;
import org.keycloak.models.RealmModel;
import org.keycloak.models.utils.ModelToRepresentation;
import org.keycloak.models.utils.RepresentationToModel;
-import org.keycloak.representations.idm.ApplicationRepresentation;
+import org.keycloak.representations.idm.ClientRepresentation;
import org.keycloak.services.resources.flows.Flows;
import javax.ws.rs.Consumes;
@@ -32,7 +32,7 @@ import java.util.List;
* @author Bill Burke
* @version $Revision: 1 $
*/
-public class ApplicationsResource {
+public class ClientsResource {
protected static final Logger logger = Logger.getLogger(RealmAdminResource.class);
protected RealmModel realm;
private RealmAuth auth;
@@ -40,7 +40,7 @@ public class ApplicationsResource {
@Context
protected KeycloakSession session;
- public ApplicationsResource(RealmModel realm, RealmAuth auth) {
+ public ClientsResource(RealmModel realm, RealmAuth auth) {
this.realm = realm;
this.auth = auth;
@@ -55,10 +55,10 @@ public class ApplicationsResource {
@GET
@Produces(MediaType.APPLICATION_JSON)
@NoCache
- public List getApplications() {
+ public List getClients() {
auth.requireAny();
- List rep = new ArrayList();
+ List rep = new ArrayList<>();
List clientModels = realm.getClients();
boolean view = auth.hasView();
@@ -66,9 +66,9 @@ public class ApplicationsResource {
if (view) {
rep.add(ModelToRepresentation.toRepresentation(clientModel));
} else {
- ApplicationRepresentation app = new ApplicationRepresentation();
- app.setName(clientModel.getClientId());
- rep.add(app);
+ ClientRepresentation client = new ClientRepresentation();
+ client.setClientId(clientModel.getClientId());
+ rep.add(client);
}
}
@@ -76,7 +76,7 @@ public class ApplicationsResource {
}
/**
- * Create a new application. Application name must be unique!
+ * Create a new client. Client client_id must be unique!
*
* @param uriInfo
* @param rep
@@ -84,18 +84,18 @@ public class ApplicationsResource {
*/
@POST
@Consumes(MediaType.APPLICATION_JSON)
- public Response createApplication(final @Context UriInfo uriInfo, final ApplicationRepresentation rep) {
+ public Response createClient(final @Context UriInfo uriInfo, final ClientRepresentation rep) {
auth.requireManage();
try {
- ClientModel clientModel = RepresentationToModel.createApplication(session, realm, rep, true);
- return Response.created(uriInfo.getAbsolutePathBuilder().path(getApplicationPath(clientModel)).build()).build();
+ ClientModel clientModel = RepresentationToModel.createClient(session, realm, rep, true);
+ return Response.created(uriInfo.getAbsolutePathBuilder().path(getClientPath(clientModel)).build()).build();
} catch (ModelDuplicateException e) {
- return Flows.errors().exists("Application " + rep.getName() + " already exists");
+ return Flows.errors().exists("Client " + rep.getClientId() + " already exists");
}
}
- protected String getApplicationPath(ClientModel clientModel) {
+ protected String getClientPath(ClientModel clientModel) {
return clientModel.getClientId();
}
@@ -106,18 +106,17 @@ public class ApplicationsResource {
* @return
*/
@Path("{app-name}")
- public ApplicationResource getApplication(final @PathParam("app-name") String name) {
- ClientModel clientModel = getApplicationByPathParam(name);
+ public ClientResource getClient(final @PathParam("app-name") String name) {
+ ClientModel clientModel = getClientByPathParam(name);
if (clientModel == null) {
- throw new NotFoundException("Could not find application: " + name);
+ throw new NotFoundException("Could not find client: " + name);
}
- ApplicationResource applicationResource = new ApplicationResource(realm, auth, clientModel, session);
- ResteasyProviderFactory.getInstance().injectProperties(applicationResource);
- //resourceContext.initResource(applicationResource);
- return applicationResource;
+ ClientResource clientResource = new ClientResource(realm, auth, clientModel, session);
+ ResteasyProviderFactory.getInstance().injectProperties(clientResource);
+ return clientResource;
}
- protected ClientModel getApplicationByPathParam(String name) {
+ protected ClientModel getClientByPathParam(String name) {
return realm.getClientByClientId(name);
}
diff --git a/services/src/main/java/org/keycloak/services/resources/admin/RealmAdminResource.java b/services/src/main/java/org/keycloak/services/resources/admin/RealmAdminResource.java
index b178882f44..313d81011c 100755
--- a/services/src/main/java/org/keycloak/services/resources/admin/RealmAdminResource.java
+++ b/services/src/main/java/org/keycloak/services/resources/admin/RealmAdminResource.java
@@ -101,11 +101,11 @@ public class RealmAdminResource {
* @return
*/
@Path("applications")
- public ApplicationsResource getApplications() {
- ApplicationsResource applicationsResource = new ApplicationsResource(realm, auth);
- ResteasyProviderFactory.getInstance().injectProperties(applicationsResource);
+ public ClientsResource getApplications() {
+ ClientsResource clientsResource = new ClientsResource(realm, auth);
+ ResteasyProviderFactory.getInstance().injectProperties(clientsResource);
//resourceContext.initResource(applicationsResource);
- return applicationsResource;
+ return clientsResource;
}
/**
@@ -114,8 +114,8 @@ public class RealmAdminResource {
* @return
*/
@Path("applications-by-id")
- public ApplicationsByIdResource getApplicationsById() {
- ApplicationsByIdResource applicationsResource = new ApplicationsByIdResource(realm, auth);
+ public ClientsByIdResource getApplicationsById() {
+ ClientsByIdResource applicationsResource = new ClientsByIdResource(realm, auth);
ResteasyProviderFactory.getInstance().injectProperties(applicationsResource);
//resourceContext.initResource(applicationsResource);
return applicationsResource;
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/adapter/AdapterTestStrategy.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/adapter/AdapterTestStrategy.java
index 8ec896eee0..dcbdcbf6c3 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/adapter/AdapterTestStrategy.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/adapter/AdapterTestStrategy.java
@@ -150,7 +150,6 @@ public class AdapterTestStrategy extends ExternalResource {
}
}
- @Test
public void testSavedPostRequest() throws Exception {
// test login to customer-portal which does a bearer request to customer-db
driver.navigate().to(APP_SERVER_BASE_URL + "/input-portal");
@@ -189,7 +188,6 @@ public class AdapterTestStrategy extends ExternalResource {
}
- @Test
public void testLoginSSOAndLogout() throws Exception {
// test login to customer-portal which does a bearer request to customer-db
driver.navigate().to(APP_SERVER_BASE_URL + "/customer-portal");
@@ -246,7 +244,6 @@ public class AdapterTestStrategy extends ExternalResource {
}
- @Test
public void testServletRequestLogout() throws Exception {
// test login to customer-portal which does a bearer request to customer-db
driver.navigate().to(APP_SERVER_BASE_URL + "/customer-portal");
@@ -288,7 +285,6 @@ public class AdapterTestStrategy extends ExternalResource {
}
- @Test
public void testLoginSSOIdle() throws Exception {
// test login to customer-portal which does a bearer request to customer-db
driver.navigate().to(APP_SERVER_BASE_URL + "/customer-portal");
@@ -322,7 +318,6 @@ public class AdapterTestStrategy extends ExternalResource {
session.close();
}
- @Test
public void testLoginSSOIdleRemoveExpiredUserSessions() throws Exception {
// test login to customer-portal which does a bearer request to customer-db
driver.navigate().to(APP_SERVER_BASE_URL + "/customer-portal");
@@ -364,7 +359,6 @@ public class AdapterTestStrategy extends ExternalResource {
session.close();
}
- @Test
public void testLoginSSOMax() throws Exception {
// test login to customer-portal which does a bearer request to customer-db
driver.navigate().to(APP_SERVER_BASE_URL + "/customer-portal");
@@ -402,7 +396,6 @@ public class AdapterTestStrategy extends ExternalResource {
* KEYCLOAK-518
* @throws Exception
*/
- @Test
public void testNullBearerToken() throws Exception {
Client client = ClientBuilder.newClient();
WebTarget target = client.target(APP_SERVER_BASE_URL + "/customer-db/");
@@ -420,7 +413,6 @@ public class AdapterTestStrategy extends ExternalResource {
* KEYCLOAK-518
* @throws Exception
*/
- @Test
public void testBadUser() throws Exception {
Client client = ClientBuilder.newClient();
UriBuilder builder = UriBuilder.fromUri(AUTH_SERVER_URL);
@@ -440,7 +432,6 @@ public class AdapterTestStrategy extends ExternalResource {
}
- @Test
public void testVersion() throws Exception {
Client client = ClientBuilder.newClient();
WebTarget target = client.target(AUTH_SERVER_URL).path("version");
@@ -463,7 +454,6 @@ public class AdapterTestStrategy extends ExternalResource {
- @Test
public void testAuthenticated() throws Exception {
// test login to customer-portal which does a bearer request to customer-db
driver.navigate().to(APP_SERVER_BASE_URL + "/secure-portal");
@@ -491,7 +481,6 @@ public class AdapterTestStrategy extends ExternalResource {
*
* @throws Throwable
*/
- @Test
public void testSingleSessionInvalidated() throws Throwable {
AdapterTestStrategy browser1 = this;
AdapterTestStrategy browser2 = new AdapterTestStrategy(AUTH_SERVER_URL, APP_SERVER_BASE_URL, keycloakRule);
@@ -529,7 +518,6 @@ public class AdapterTestStrategy extends ExternalResource {
/**
* KEYCLOAK-741
*/
- @Test
public void testSessionInvalidatedAfterFailedRefresh() throws Throwable {
final AtomicInteger origTokenLifespan = new AtomicInteger();
@@ -581,14 +569,13 @@ public class AdapterTestStrategy extends ExternalResource {
/**
* KEYCLOAK-942
*/
- @Test
public void testAdminApplicationLogout() throws Throwable {
// login as bburke
loginAndCheckSession(driver, loginPage);
// logout mposolda with admin client
Keycloak keycloakAdmin = Keycloak.getInstance(AUTH_SERVER_URL, "master", "admin", "admin", Constants.ADMIN_CONSOLE_APPLICATION);
- keycloakAdmin.realm("demo").applications().get("session-portal").logoutUser("mposolda");
+ keycloakAdmin.realm("demo").clients().get("session-portal").logoutUser("mposolda");
// bburke should be still logged with original httpSession in our browser window
driver.navigate().to(APP_SERVER_BASE_URL + "/session-portal");
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/AbstractClientTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/AbstractClientTest.java
index 4d549095f8..d221df0669 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/AbstractClientTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/AbstractClientTest.java
@@ -9,6 +9,7 @@ import org.keycloak.models.Constants;
import org.keycloak.models.RealmModel;
import org.keycloak.models.utils.KeycloakModelUtils;
import org.keycloak.representations.idm.ApplicationRepresentation;
+import org.keycloak.representations.idm.ClientRepresentation;
import org.keycloak.representations.idm.IdentityProviderRepresentation;
import org.keycloak.representations.idm.OAuthClientRepresentation;
import org.keycloak.representations.idm.RealmRepresentation;
@@ -97,10 +98,8 @@ public abstract class AbstractClientTest {
public static String name(Object o1) {
if (o1 instanceof RealmRepresentation) {
return ((RealmRepresentation) o1).getRealm();
- } else if (o1 instanceof ApplicationRepresentation) {
- return ((ApplicationRepresentation) o1).getName();
- } else if (o1 instanceof OAuthClientRepresentation) {
- return ((OAuthClientRepresentation) o1).getName();
+ } else if (o1 instanceof ClientRepresentation) {
+ return ((ClientRepresentation) o1).getClientId();
} else if (o1 instanceof IdentityProviderRepresentation) {
return ((IdentityProviderRepresentation) o1).getAlias();
}
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/AdminAPITest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/AdminAPITest.java
index ff73d79c29..a8a4292049 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/AdminAPITest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/AdminAPITest.java
@@ -35,7 +35,7 @@ import org.keycloak.models.UserSessionModel;
import org.keycloak.protocol.oidc.OIDCLoginProtocol;
import org.keycloak.protocol.oidc.TokenManager;
import org.keycloak.representations.AccessToken;
-import org.keycloak.representations.idm.ApplicationRepresentation;
+import org.keycloak.representations.idm.ClientRepresentation;
import org.keycloak.representations.idm.CredentialRepresentation;
import org.keycloak.representations.idm.RealmRepresentation;
import org.keycloak.services.managers.RealmManager;
@@ -125,19 +125,19 @@ public class AdminAPITest {
storedRealm = realmTarget.request().get(RealmRepresentation.class);
checkRealmRep(rep, storedRealm);
- if (rep.getApplications() != null) {
+ if (rep.getClients() != null) {
WebTarget applicationsTarget = realmTarget.path("applications");
- for (ApplicationRepresentation appRep : rep.getApplications()) {
- ApplicationRepresentation newApp = new ApplicationRepresentation();
+ for (ClientRepresentation appRep : rep.getClients()) {
+ ClientRepresentation newApp = new ClientRepresentation();
if (appRep.getId() != null) newApp.setId(appRep.getId());
- newApp.setName(appRep.getName());
+ newApp.setClientId(appRep.getClientId());
if (appRep.getSecret() != null) {
newApp.setSecret(appRep.getSecret());
}
Response appCreateResponse = applicationsTarget.request().post(Entity.json(newApp));
Assert.assertEquals(201, appCreateResponse.getStatus());
appCreateResponse.close();
- WebTarget appTarget = applicationsTarget.path(appRep.getName());
+ WebTarget appTarget = applicationsTarget.path(appRep.getClientId());
CredentialRepresentation cred = appTarget.path("client-secret").request().get(CredentialRepresentation.class);
if (appRep.getSecret() != null) Assert.assertEquals(appRep.getSecret(), cred.getValue());
CredentialRepresentation newCred = appTarget.path("client-secret").request().post(null, CredentialRepresentation.class);
@@ -148,7 +148,7 @@ public class AdminAPITest {
appUpdateResponse.close();
- ApplicationRepresentation storedApp = appTarget.request().get(ApplicationRepresentation.class);
+ ClientRepresentation storedApp = appTarget.request().get(ClientRepresentation.class);
checkAppUpdate(appRep, storedApp);
@@ -165,8 +165,8 @@ public class AdminAPITest {
client.close();
}
- protected void checkAppUpdate(ApplicationRepresentation appRep, ApplicationRepresentation storedApp) {
- if (appRep.getName() != null) Assert.assertEquals(appRep.getName(), storedApp.getName());
+ protected void checkAppUpdate(ClientRepresentation appRep, ClientRepresentation storedApp) {
+ if (appRep.getClientId() != null) Assert.assertEquals(appRep.getClientId(), storedApp.getClientId());
if (appRep.isEnabled() != null) Assert.assertEquals(appRep.isEnabled(), storedApp.isEnabled());
if (appRep.isBearerOnly() != null) Assert.assertEquals(appRep.isBearerOnly(), storedApp.isBearerOnly());
if (appRep.isPublicClient() != null) Assert.assertEquals(appRep.isPublicClient(), storedApp.isPublicClient());
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/ApplicationTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/ClientTest.java
similarity index 70%
rename from testsuite/integration/src/test/java/org/keycloak/testsuite/admin/ApplicationTest.java
rename to testsuite/integration/src/test/java/org/keycloak/testsuite/admin/ClientTest.java
index 55e17e68c8..7dc995223b 100644
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/ApplicationTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/ClientTest.java
@@ -2,10 +2,10 @@ package org.keycloak.testsuite.admin;
import org.junit.Rule;
import org.junit.Test;
-import org.keycloak.admin.client.resource.ApplicationResource;
+import org.keycloak.admin.client.resource.ClientResource;
import org.keycloak.admin.client.resource.ProtocolMappersResource;
import org.keycloak.protocol.oidc.OIDCLoginProtocolFactory;
-import org.keycloak.representations.idm.ApplicationRepresentation;
+import org.keycloak.representations.idm.ClientRepresentation;
import org.keycloak.representations.idm.ProtocolMapperRepresentation;
import org.keycloak.representations.idm.RoleRepresentation;
import org.keycloak.representations.idm.UserSessionRepresentation;
@@ -29,7 +29,7 @@ import static org.junit.Assert.fail;
/**
* @author Stian Thorgersen
*/
-public class ApplicationTest extends AbstractClientTest {
+public class ClientTest extends AbstractClientTest {
@Rule
public WebRule webRule = new WebRule(this);
@@ -41,38 +41,38 @@ public class ApplicationTest extends AbstractClientTest {
protected OAuthClient oauth;
@Test
- public void getApplications() {
- assertNames(realm.applications().findAll(), "account", "realm-management", "security-admin-console");
+ public void getClients() {
+ assertNames(realm.clients().findAll(), "account", "realm-management", "security-admin-console");
}
@Test
- public void createApplication() {
- ApplicationRepresentation rep = new ApplicationRepresentation();
- rep.setName("my-app");
+ public void createClient() {
+ ClientRepresentation rep = new ClientRepresentation();
+ rep.setClientId("my-app");
rep.setEnabled(true);
- realm.applications().create(rep);
+ realm.clients().create(rep);
- assertNames(realm.applications().findAll(), "account", "realm-management", "security-admin-console", "my-app");
+ assertNames(realm.clients().findAll(), "account", "realm-management", "security-admin-console", "my-app");
}
@Test
- public void removeApplication() {
- createApplication();
+ public void removeClient() {
+ createClient();
- realm.applications().get("my-app").remove();
+ realm.clients().get("my-app").remove();
}
@Test
- public void getApplicationRepresentation() {
- createApplication();
+ public void getClientRepresentation() {
+ createClient();
- ApplicationRepresentation rep = realm.applications().get("my-app").toRepresentation();
- assertEquals("my-app", rep.getName());
+ ClientRepresentation rep = realm.clients().get("my-app").toRepresentation();
+ assertEquals("my-app", rep.getClientId());
assertTrue(rep.isEnabled());
}
@Test
- public void getApplicationSessions() throws Exception {
+ public void getClientSessions() throws Exception {
OAuthClient.AccessTokenResponse response = oauth.doGrantAccessTokenRequest("password", "test-user@localhost", "password");
assertEquals(200, response.getStatusCode());
@@ -81,7 +81,7 @@ public class ApplicationTest extends AbstractClientTest {
OAuthClient.AccessTokenResponse response2 = oauth.doAccessTokenRequest(codeResponse.getCode(), "password");
assertEquals(200, response2.getStatusCode());
- ApplicationResource app = keycloak.realm("test").applications().get("test-app");
+ ClientResource app = keycloak.realm("test").clients().get("test-app");
assertEquals(2, (long) app.getApplicationSessionCount().get("count"));
@@ -93,29 +93,29 @@ public class ApplicationTest extends AbstractClientTest {
@Test
// KEYCLOAK-1110
public void deleteDefaultRole() {
- ApplicationRepresentation rep = new ApplicationRepresentation();
- rep.setName("my-app");
+ ClientRepresentation rep = new ClientRepresentation();
+ rep.setClientId("my-app");
rep.setEnabled(true);
- realm.applications().create(rep);
+ realm.clients().create(rep);
RoleRepresentation role = new RoleRepresentation("test", "test");
- realm.applications().get("my-app").roles().create(role);
+ realm.clients().get("my-app").roles().create(role);
- rep = realm.applications().get("my-app").toRepresentation();
+ rep = realm.clients().get("my-app").toRepresentation();
rep.setDefaultRoles(new String[] { "test" });
- realm.applications().get("my-app").update(rep);
+ realm.clients().get("my-app").update(rep);
- assertArrayEquals(new String[] { "test" }, realm.applications().get("my-app").toRepresentation().getDefaultRoles());
+ assertArrayEquals(new String[] { "test" }, realm.clients().get("my-app").toRepresentation().getDefaultRoles());
- realm.applications().get("my-app").roles().deleteRole("test");
+ realm.clients().get("my-app").roles().deleteRole("test");
- assertNull(realm.applications().get("my-app").toRepresentation().getDefaultRoles());
+ assertNull(realm.clients().get("my-app").toRepresentation().getDefaultRoles());
}
@Test
public void testProtocolMappers() {
- createApplication();
- ProtocolMappersResource mappersResource = realm.applications().get("my-app").getProtocolMappers();
+ createClient();
+ ProtocolMappersResource mappersResource = realm.clients().get("my-app").getProtocolMappers();
protocolMappersTest(mappersResource);
}
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/composites/CompositeRoleTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/composites/CompositeRoleTest.java
index fc8bf15dd7..7178f1de10 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/composites/CompositeRoleTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/composites/CompositeRoleTest.java
@@ -35,7 +35,7 @@ import org.keycloak.models.UserCredentialModel;
import org.keycloak.models.UserModel;
import org.keycloak.models.utils.KeycloakModelUtils;
import org.keycloak.representations.AccessToken;
-import org.keycloak.services.managers.ApplicationManager;
+import org.keycloak.services.managers.ClientManager;
import org.keycloak.services.managers.RealmManager;
import org.keycloak.testsuite.ApplicationServlet;
import org.keycloak.testsuite.OAuthClient;
@@ -85,7 +85,7 @@ public class CompositeRoleTest {
realmRole1User.updateCredential(UserCredentialModel.password("password"));
realmRole1User.grantRole(realmRole1);
- final ClientModel realmComposite1Application = new ApplicationManager(manager).createApplication(realm, "REALM_COMPOSITE_1_APPLICATION");
+ final ClientModel realmComposite1Application = new ClientManager(manager).createClient(realm, "REALM_COMPOSITE_1_APPLICATION");
realmComposite1Application.setFullScopeAllowed(false);
realmComposite1Application.setEnabled(true);
realmComposite1Application.addScopeMapping(realmComposite1);
@@ -94,7 +94,7 @@ public class CompositeRoleTest {
realmComposite1Application.setManagementUrl("http://localhost:8081/app/logout");
realmComposite1Application.setSecret("password");
- final ClientModel realmRole1Application = new ApplicationManager(manager).createApplication(realm, "REALM_ROLE_1_APPLICATION");
+ final ClientModel realmRole1Application = new ClientManager(manager).createClient(realm, "REALM_ROLE_1_APPLICATION");
realmRole1Application.setFullScopeAllowed(false);
realmRole1Application.setEnabled(true);
realmRole1Application.addScopeMapping(realmRole1);
@@ -104,7 +104,7 @@ public class CompositeRoleTest {
realmRole1Application.setSecret("password");
- final ClientModel appRoleApplication = new ApplicationManager(manager).createApplication(realm, "APP_ROLE_APPLICATION");
+ final ClientModel appRoleApplication = new ClientManager(manager).createClient(realm, "APP_ROLE_APPLICATION");
appRoleApplication.setFullScopeAllowed(false);
appRoleApplication.setEnabled(true);
appRoleApplication.addRedirectUri("http://localhost:8081/app/*");
@@ -127,7 +127,7 @@ public class CompositeRoleTest {
realmAppRoleUser.updateCredential(UserCredentialModel.password("password"));
realmAppRoleUser.grantRole(appRole2);
- final ClientModel appCompositeApplication = new ApplicationManager(manager).createApplication(realm, "APP_COMPOSITE_APPLICATION");
+ final ClientModel appCompositeApplication = new ClientManager(manager).createClient(realm, "APP_COMPOSITE_APPLICATION");
appCompositeApplication.setFullScopeAllowed(false);
appCompositeApplication.setEnabled(true);
appCompositeApplication.addRedirectUri("http://localhost:8081/app/*");
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/model/ClientModelTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/model/ClientModelTest.java
index f80b040173..a9b1344f2c 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/model/ClientModelTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/model/ClientModelTest.java
@@ -8,8 +8,8 @@ import org.keycloak.models.RealmModel;
import org.keycloak.models.RoleModel;
import org.keycloak.models.utils.ModelToRepresentation;
import org.keycloak.models.utils.RepresentationToModel;
-import org.keycloak.representations.idm.ApplicationRepresentation;
-import org.keycloak.services.managers.ApplicationManager;
+import org.keycloak.representations.idm.ClientRepresentation;
+import org.keycloak.services.managers.ClientManager;
import java.util.Iterator;
import java.util.List;
@@ -18,37 +18,37 @@ import java.util.List;
* @author Stian Thorgersen
*/
public class ClientModelTest extends AbstractModelTest {
- private ClientModel application;
+ private ClientModel client;
private RealmModel realm;
- private ApplicationManager appManager;
+ private ClientManager appManager;
@Before
@Override
public void before() throws Exception {
super.before();
- appManager = new ApplicationManager(realmManager);
+ appManager = new ClientManager(realmManager);
realm = realmManager.createRealm("original");
- application = realm.addClient("application");
- application.setBaseUrl("http://base");
- application.setManagementUrl("http://management");
- application.setClientId("app-name");
- application.addRole("role-1");
- application.addRole("role-2");
- application.addRole("role-3");
- application.addDefaultRole("role-1");
- application.addDefaultRole("role-2");
+ client = realm.addClient("application");
+ client.setBaseUrl("http://base");
+ client.setManagementUrl("http://management");
+ client.setClientId("app-name");
+ client.addRole("role-1");
+ client.addRole("role-2");
+ client.addRole("role-3");
+ client.addDefaultRole("role-1");
+ client.addDefaultRole("role-2");
- application.addRedirectUri("redirect-1");
- application.addRedirectUri("redirect-2");
+ client.addRedirectUri("redirect-1");
+ client.addRedirectUri("redirect-2");
- application.addWebOrigin("origin-1");
- application.addWebOrigin("origin-2");
+ client.addWebOrigin("origin-1");
+ client.addWebOrigin("origin-2");
- application.registerNode("node1", 10);
- application.registerNode("10.20.30.40", 50);
+ client.registerNode("node1", 10);
+ client.registerNode("10.20.30.40", 50);
- application.updateApplication();
+ client.updateApplication();
}
@Test
@@ -56,26 +56,26 @@ public class ClientModelTest extends AbstractModelTest {
RealmModel persisted = realmManager.getRealm(realm.getId());
ClientModel actual = persisted.getClientNameMap().get("app-name");
- assertEquals(application, actual);
+ assertEquals(client, actual);
}
@Test
public void json() {
- ApplicationRepresentation representation = ModelToRepresentation.toRepresentation(application);
+ ClientRepresentation representation = ModelToRepresentation.toRepresentation(client);
representation.setId(null);
RealmModel realm = realmManager.createRealm("copy");
- ClientModel copy = RepresentationToModel.createApplication(session, realm, representation, true);
+ ClientModel copy = RepresentationToModel.createClient(session, realm, representation, true);
- assertEquals(application, copy);
+ assertEquals(client, copy);
}
@Test
public void testAddApplicationWithId() {
- application = realm.addClient("app-123", "application2");
+ client = realm.addClient("app-123", "application2");
commit();
- application = realmManager.getRealm(realm.getId()).getClientById("app-123");
- Assert.assertNotNull(application);
+ client = realmManager.getRealm(realm.getId()).getClientById("app-123");
+ Assert.assertNotNull(client);
}