Details
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 14e3a1e..c9ba3dd 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
@@ -45,7 +45,7 @@ import java.util.Set;
public class ExportUtils {
public static RealmRepresentation exportRealm(KeycloakSession session, RealmModel realm, boolean includeUsers) {
- RealmRepresentation rep = ModelToRepresentation.toRepresentation(realm);
+ RealmRepresentation rep = ModelToRepresentation.toRepresentation(realm, true);
// Audit
rep.setEventsEnabled(realm.isEventsEnabled());
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 0697680..07a8d51 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
@@ -1,271 +1,273 @@
-package org.keycloak.models.utils;
-
-import org.keycloak.models.ApplicationModel;
-import org.keycloak.models.ClaimMask;
-import org.keycloak.models.ClientModel;
-import org.keycloak.models.ClientSessionModel;
-import org.keycloak.models.Constants;
-import org.keycloak.models.OAuthClientModel;
-import org.keycloak.models.RealmModel;
-import org.keycloak.models.RequiredCredentialModel;
-import org.keycloak.models.RoleModel;
-import org.keycloak.models.SocialLinkModel;
-import org.keycloak.models.UserCredentialModel;
-import org.keycloak.models.UserFederationProviderModel;
-import org.keycloak.models.UserModel;
-import org.keycloak.models.UserSessionModel;
-import org.keycloak.representations.idm.ApplicationRepresentation;
-import org.keycloak.representations.idm.ClaimRepresentation;
-import org.keycloak.representations.idm.CredentialRepresentation;
-import org.keycloak.representations.idm.OAuthClientRepresentation;
-import org.keycloak.representations.idm.RealmEventsConfigRepresentation;
-import org.keycloak.representations.idm.RealmRepresentation;
-import org.keycloak.representations.idm.RoleRepresentation;
-import org.keycloak.representations.idm.SocialLinkRepresentation;
-import org.keycloak.representations.idm.UserFederationProviderRepresentation;
-import org.keycloak.representations.idm.UserRepresentation;
-import org.keycloak.representations.idm.UserSessionRepresentation;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
- * @version $Revision: 1 $
- */
-public class ModelToRepresentation {
- public static UserRepresentation toRepresentation(UserModel user) {
- UserRepresentation rep = new UserRepresentation();
- rep.setId(user.getId());
- rep.setUsername(user.getUsername());
- rep.setLastName(user.getLastName());
- rep.setFirstName(user.getFirstName());
- rep.setEmail(user.getEmail());
- rep.setEnabled(user.isEnabled());
- rep.setEmailVerified(user.isEmailVerified());
- rep.setTotp(user.isTotp());
- rep.setFederationLink(user.getFederationLink());
-
- List<String> reqActions = new ArrayList<String>();
- for (UserModel.RequiredAction ra : user.getRequiredActions()){
- reqActions.add(ra.name());
- }
-
- rep.setRequiredActions(reqActions);
-
- if (user.getAttributes() != null && !user.getAttributes().isEmpty()) {
- Map<String, String> attrs = new HashMap<String, String>();
- attrs.putAll(user.getAttributes());
- rep.setAttributes(attrs);
- }
- return rep;
- }
-
- public static RoleRepresentation toRepresentation(RoleModel role) {
- RoleRepresentation rep = new RoleRepresentation();
- rep.setId(role.getId());
- rep.setName(role.getName());
- rep.setDescription(role.getDescription());
- rep.setComposite(role.isComposite());
- return rep;
- }
-
- public static RealmRepresentation toRepresentation(RealmModel realm) {
- RealmRepresentation rep = new RealmRepresentation();
- rep.setId(realm.getId());
- rep.setRealm(realm.getName());
- rep.setEnabled(realm.isEnabled());
- rep.setSocial(realm.isSocial());
- rep.setNotBefore(realm.getNotBefore());
- rep.setUpdateProfileOnInitialSocialLogin(realm.isUpdateProfileOnInitialSocialLogin());
- rep.setSslRequired(realm.getSslRequired().name().toLowerCase());
- rep.setPublicKey(realm.getPublicKeyPem());
- rep.setPrivateKey(realm.getPrivateKeyPem());
- rep.setPasswordCredentialGrantAllowed(realm.isPasswordCredentialGrantAllowed());
- rep.setRegistrationAllowed(realm.isRegistrationAllowed());
- rep.setRememberMe(realm.isRememberMe());
- rep.setBruteForceProtected(realm.isBruteForceProtected());
- rep.setMaxFailureWaitSeconds(realm.getMaxFailureWaitSeconds());
- rep.setMinimumQuickLoginWaitSeconds(realm.getMinimumQuickLoginWaitSeconds());
- rep.setWaitIncrementSeconds(realm.getWaitIncrementSeconds());
- rep.setQuickLoginCheckMilliSeconds(realm.getQuickLoginCheckMilliSeconds());
- rep.setMaxDeltaTimeSeconds(realm.getMaxDeltaTimeSeconds());
- rep.setFailureFactor(realm.getFailureFactor());
- rep.setVerifyEmail(realm.isVerifyEmail());
- rep.setResetPasswordAllowed(realm.isResetPasswordAllowed());
- rep.setAccessTokenLifespan(realm.getAccessTokenLifespan());
- rep.setSsoSessionIdleTimeout(realm.getSsoSessionIdleTimeout());
- rep.setSsoSessionMaxLifespan(realm.getSsoSessionMaxLifespan());
- rep.setAccessCodeLifespan(realm.getAccessCodeLifespan());
- rep.setAccessCodeLifespanUserAction(realm.getAccessCodeLifespanUserAction());
- rep.setSmtpServer(realm.getSmtpConfig());
- rep.setSocialProviders(realm.getSocialConfig());
- rep.setBrowserSecurityHeaders(realm.getBrowserSecurityHeaders());
- rep.setAccountTheme(realm.getAccountTheme());
- rep.setLoginTheme(realm.getLoginTheme());
- rep.setAdminTheme(realm.getAdminTheme());
- rep.setEmailTheme(realm.getEmailTheme());
- if (realm.getPasswordPolicy() != null) {
- rep.setPasswordPolicy(realm.getPasswordPolicy().toString());
- }
-
- ApplicationModel accountManagementApplication = realm.getApplicationNameMap().get(Constants.ACCOUNT_MANAGEMENT_APP);
-
- List<String> defaultRoles = realm.getDefaultRoles();
- if (!defaultRoles.isEmpty()) {
- List<String> roleStrings = new ArrayList<String>();
- roleStrings.addAll(defaultRoles);
- rep.setDefaultRoles(roleStrings);
- }
-
- List<RequiredCredentialModel> requiredCredentialModels = realm.getRequiredCredentials();
- if (requiredCredentialModels.size() > 0) {
- rep.setRequiredCredentials(new HashSet<String>());
- for (RequiredCredentialModel cred : requiredCredentialModels) {
- rep.getRequiredCredentials().add(cred.getType());
- }
- }
-
- List<UserFederationProviderModel> fedProviderModels = realm.getUserFederationProviders();
- if (fedProviderModels.size() > 0) {
- List<UserFederationProviderRepresentation> fedProviderReps = new ArrayList<UserFederationProviderRepresentation>();
- for (UserFederationProviderModel model : fedProviderModels) {
- UserFederationProviderRepresentation fedProvRep = toRepresentation(model);
- fedProviderReps.add(fedProvRep);
- }
- rep.setUserFederationProviders(fedProviderReps);
- }
- return rep;
- }
-
- public static RealmEventsConfigRepresentation toEventsConfigReprensetation(RealmModel realm) {
- RealmEventsConfigRepresentation rep = new RealmEventsConfigRepresentation();
- rep.setEventsEnabled(realm.isEventsEnabled());
-
- if (realm.getEventsExpiration() != 0) {
- rep.setEventsExpiration(realm.getEventsExpiration());
- }
-
- if (realm.getEventsListeners() != null) {
- rep.setEventsListeners(new LinkedList<String>(realm.getEventsListeners()));
- }
- return rep;
- }
-
- public static CredentialRepresentation toRepresentation(UserCredentialModel cred) {
- CredentialRepresentation rep = new CredentialRepresentation();
- rep.setType(CredentialRepresentation.SECRET);
- rep.setValue(cred.getValue());
- return rep;
- }
-
- public static ClaimRepresentation toRepresentation(ClientModel model) {
- ClaimRepresentation rep = new ClaimRepresentation();
- rep.setAddress(ClaimMask.hasAddress(model.getAllowedClaimsMask()));
- rep.setEmail(ClaimMask.hasEmail(model.getAllowedClaimsMask()));
- rep.setGender(ClaimMask.hasGender(model.getAllowedClaimsMask()));
- rep.setLocale(ClaimMask.hasLocale(model.getAllowedClaimsMask()));
- rep.setName(ClaimMask.hasName(model.getAllowedClaimsMask()));
- rep.setPhone(ClaimMask.hasPhone(model.getAllowedClaimsMask()));
- rep.setPicture(ClaimMask.hasPicture(model.getAllowedClaimsMask()));
- rep.setProfile(ClaimMask.hasProfile(model.getAllowedClaimsMask()));
- rep.setWebsite(ClaimMask.hasWebsite(model.getAllowedClaimsMask()));
- rep.setUsername(ClaimMask.hasUsername(model.getAllowedClaimsMask()));
- return rep;
- }
-
- public static SocialLinkRepresentation toRepresentation(SocialLinkModel socialLink) {
- SocialLinkRepresentation rep = new SocialLinkRepresentation();
- rep.setSocialUsername(socialLink.getSocialUsername());
- rep.setSocialProvider(socialLink.getSocialProvider());
- rep.setSocialUserId(socialLink.getSocialUserId());
- return rep;
- }
-
- public static UserSessionRepresentation toRepresentation(UserSessionModel session) {
- UserSessionRepresentation rep = new UserSessionRepresentation();
- rep.setId(session.getId());
- rep.setStart(((long)session.getStarted()) * 1000L);
- rep.setLastAccess(((long)session.getLastSessionRefresh())* 1000L);
- rep.setUser(session.getUser().getUsername());
- rep.setIpAddress(session.getIpAddress());
- for (ClientSessionModel clientSession : session.getClientSessions()) {
- ClientModel client = clientSession.getClient();
- if (client instanceof ApplicationModel) {
- rep.getApplications().add(client.getClientId());
- } else if (client instanceof OAuthClientModel) {
- rep.getClients().put(client.getId(), client.getClientId());
- }
- }
- return rep;
- }
-
- public static ApplicationRepresentation toRepresentation(ApplicationModel applicationModel) {
- ApplicationRepresentation rep = new ApplicationRepresentation();
- rep.setId(applicationModel.getId());
- rep.setName(applicationModel.getName());
- rep.setEnabled(applicationModel.isEnabled());
- rep.setAdminUrl(applicationModel.getManagementUrl());
- rep.setPublicClient(applicationModel.isPublicClient());
- rep.setFullScopeAllowed(applicationModel.isFullScopeAllowed());
- rep.setBearerOnly(applicationModel.isBearerOnly());
- rep.setSurrogateAuthRequired(applicationModel.isSurrogateAuthRequired());
- rep.setBaseUrl(applicationModel.getBaseUrl());
- rep.setNotBefore(applicationModel.getNotBefore());
-
- Set<String> redirectUris = applicationModel.getRedirectUris();
- if (redirectUris != null) {
- rep.setRedirectUris(new LinkedList<String>(redirectUris));
- }
-
- Set<String> webOrigins = applicationModel.getWebOrigins();
- if (webOrigins != null) {
- rep.setWebOrigins(new LinkedList<String>(webOrigins));
- }
-
- if (!applicationModel.getDefaultRoles().isEmpty()) {
- rep.setDefaultRoles(applicationModel.getDefaultRoles().toArray(new String[0]));
- }
-
- return rep;
- }
-
- public static OAuthClientRepresentation toRepresentation(OAuthClientModel model) {
- OAuthClientRepresentation rep = new OAuthClientRepresentation();
- rep.setId(model.getId());
- rep.setName(model.getClientId());
- rep.setEnabled(model.isEnabled());
- rep.setPublicClient(model.isPublicClient());
- rep.setFullScopeAllowed(model.isFullScopeAllowed());
- rep.setDirectGrantsOnly(model.isDirectGrantsOnly());
- Set<String> redirectUris = model.getRedirectUris();
- if (redirectUris != null) {
- rep.setRedirectUris(new LinkedList<String>(redirectUris));
- }
-
- Set<String> webOrigins = model.getWebOrigins();
- if (webOrigins != null) {
- rep.setWebOrigins(new LinkedList<String>(webOrigins));
- }
- rep.setNotBefore(model.getNotBefore());
- return rep;
- }
-
- public static UserFederationProviderRepresentation toRepresentation(UserFederationProviderModel model) {
- UserFederationProviderRepresentation rep = new UserFederationProviderRepresentation();
- rep.setId(model.getId());
- rep.setConfig(model.getConfig());
- rep.setProviderName(model.getProviderName());
- rep.setPriority(model.getPriority());
- rep.setDisplayName(model.getDisplayName());
- rep.setFullSyncPeriod(model.getFullSyncPeriod());
- rep.setChangedSyncPeriod(model.getChangedSyncPeriod());
- rep.setLastSync(model.getLastSync());
- return rep;
- }
-}
+package org.keycloak.models.utils;
+
+import org.keycloak.models.ApplicationModel;
+import org.keycloak.models.ClaimMask;
+import org.keycloak.models.ClientModel;
+import org.keycloak.models.ClientSessionModel;
+import org.keycloak.models.Constants;
+import org.keycloak.models.OAuthClientModel;
+import org.keycloak.models.RealmModel;
+import org.keycloak.models.RequiredCredentialModel;
+import org.keycloak.models.RoleModel;
+import org.keycloak.models.SocialLinkModel;
+import org.keycloak.models.UserCredentialModel;
+import org.keycloak.models.UserFederationProviderModel;
+import org.keycloak.models.UserModel;
+import org.keycloak.models.UserSessionModel;
+import org.keycloak.representations.idm.ApplicationRepresentation;
+import org.keycloak.representations.idm.ClaimRepresentation;
+import org.keycloak.representations.idm.CredentialRepresentation;
+import org.keycloak.representations.idm.OAuthClientRepresentation;
+import org.keycloak.representations.idm.RealmEventsConfigRepresentation;
+import org.keycloak.representations.idm.RealmRepresentation;
+import org.keycloak.representations.idm.RoleRepresentation;
+import org.keycloak.representations.idm.SocialLinkRepresentation;
+import org.keycloak.representations.idm.UserFederationProviderRepresentation;
+import org.keycloak.representations.idm.UserRepresentation;
+import org.keycloak.representations.idm.UserSessionRepresentation;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
+ * @version $Revision: 1 $
+ */
+public class ModelToRepresentation {
+ public static UserRepresentation toRepresentation(UserModel user) {
+ UserRepresentation rep = new UserRepresentation();
+ rep.setId(user.getId());
+ rep.setUsername(user.getUsername());
+ rep.setLastName(user.getLastName());
+ rep.setFirstName(user.getFirstName());
+ rep.setEmail(user.getEmail());
+ rep.setEnabled(user.isEnabled());
+ rep.setEmailVerified(user.isEmailVerified());
+ rep.setTotp(user.isTotp());
+ rep.setFederationLink(user.getFederationLink());
+
+ List<String> reqActions = new ArrayList<String>();
+ for (UserModel.RequiredAction ra : user.getRequiredActions()){
+ reqActions.add(ra.name());
+ }
+
+ rep.setRequiredActions(reqActions);
+
+ if (user.getAttributes() != null && !user.getAttributes().isEmpty()) {
+ Map<String, String> attrs = new HashMap<String, String>();
+ attrs.putAll(user.getAttributes());
+ rep.setAttributes(attrs);
+ }
+ return rep;
+ }
+
+ public static RoleRepresentation toRepresentation(RoleModel role) {
+ RoleRepresentation rep = new RoleRepresentation();
+ rep.setId(role.getId());
+ rep.setName(role.getName());
+ rep.setDescription(role.getDescription());
+ rep.setComposite(role.isComposite());
+ return rep;
+ }
+
+ public static RealmRepresentation toRepresentation(RealmModel realm, boolean internal) {
+ RealmRepresentation rep = new RealmRepresentation();
+ rep.setId(realm.getId());
+ rep.setRealm(realm.getName());
+ rep.setEnabled(realm.isEnabled());
+ rep.setSocial(realm.isSocial());
+ rep.setNotBefore(realm.getNotBefore());
+ rep.setUpdateProfileOnInitialSocialLogin(realm.isUpdateProfileOnInitialSocialLogin());
+ rep.setSslRequired(realm.getSslRequired().name().toLowerCase());
+ rep.setPublicKey(realm.getPublicKeyPem());
+ if (internal) {
+ rep.setPrivateKey(realm.getPrivateKeyPem());
+ }
+ rep.setPasswordCredentialGrantAllowed(realm.isPasswordCredentialGrantAllowed());
+ rep.setRegistrationAllowed(realm.isRegistrationAllowed());
+ rep.setRememberMe(realm.isRememberMe());
+ rep.setBruteForceProtected(realm.isBruteForceProtected());
+ rep.setMaxFailureWaitSeconds(realm.getMaxFailureWaitSeconds());
+ rep.setMinimumQuickLoginWaitSeconds(realm.getMinimumQuickLoginWaitSeconds());
+ rep.setWaitIncrementSeconds(realm.getWaitIncrementSeconds());
+ rep.setQuickLoginCheckMilliSeconds(realm.getQuickLoginCheckMilliSeconds());
+ rep.setMaxDeltaTimeSeconds(realm.getMaxDeltaTimeSeconds());
+ rep.setFailureFactor(realm.getFailureFactor());
+ rep.setVerifyEmail(realm.isVerifyEmail());
+ rep.setResetPasswordAllowed(realm.isResetPasswordAllowed());
+ rep.setAccessTokenLifespan(realm.getAccessTokenLifespan());
+ rep.setSsoSessionIdleTimeout(realm.getSsoSessionIdleTimeout());
+ rep.setSsoSessionMaxLifespan(realm.getSsoSessionMaxLifespan());
+ rep.setAccessCodeLifespan(realm.getAccessCodeLifespan());
+ rep.setAccessCodeLifespanUserAction(realm.getAccessCodeLifespanUserAction());
+ rep.setSmtpServer(realm.getSmtpConfig());
+ rep.setSocialProviders(realm.getSocialConfig());
+ rep.setBrowserSecurityHeaders(realm.getBrowserSecurityHeaders());
+ rep.setAccountTheme(realm.getAccountTheme());
+ rep.setLoginTheme(realm.getLoginTheme());
+ rep.setAdminTheme(realm.getAdminTheme());
+ rep.setEmailTheme(realm.getEmailTheme());
+ if (realm.getPasswordPolicy() != null) {
+ rep.setPasswordPolicy(realm.getPasswordPolicy().toString());
+ }
+
+ ApplicationModel accountManagementApplication = realm.getApplicationNameMap().get(Constants.ACCOUNT_MANAGEMENT_APP);
+
+ List<String> defaultRoles = realm.getDefaultRoles();
+ if (!defaultRoles.isEmpty()) {
+ List<String> roleStrings = new ArrayList<String>();
+ roleStrings.addAll(defaultRoles);
+ rep.setDefaultRoles(roleStrings);
+ }
+
+ List<RequiredCredentialModel> requiredCredentialModels = realm.getRequiredCredentials();
+ if (requiredCredentialModels.size() > 0) {
+ rep.setRequiredCredentials(new HashSet<String>());
+ for (RequiredCredentialModel cred : requiredCredentialModels) {
+ rep.getRequiredCredentials().add(cred.getType());
+ }
+ }
+
+ List<UserFederationProviderModel> fedProviderModels = realm.getUserFederationProviders();
+ if (fedProviderModels.size() > 0) {
+ List<UserFederationProviderRepresentation> fedProviderReps = new ArrayList<UserFederationProviderRepresentation>();
+ for (UserFederationProviderModel model : fedProviderModels) {
+ UserFederationProviderRepresentation fedProvRep = toRepresentation(model);
+ fedProviderReps.add(fedProvRep);
+ }
+ rep.setUserFederationProviders(fedProviderReps);
+ }
+ return rep;
+ }
+
+ public static RealmEventsConfigRepresentation toEventsConfigReprensetation(RealmModel realm) {
+ RealmEventsConfigRepresentation rep = new RealmEventsConfigRepresentation();
+ rep.setEventsEnabled(realm.isEventsEnabled());
+
+ if (realm.getEventsExpiration() != 0) {
+ rep.setEventsExpiration(realm.getEventsExpiration());
+ }
+
+ if (realm.getEventsListeners() != null) {
+ rep.setEventsListeners(new LinkedList<String>(realm.getEventsListeners()));
+ }
+ return rep;
+ }
+
+ public static CredentialRepresentation toRepresentation(UserCredentialModel cred) {
+ CredentialRepresentation rep = new CredentialRepresentation();
+ rep.setType(CredentialRepresentation.SECRET);
+ rep.setValue(cred.getValue());
+ return rep;
+ }
+
+ public static ClaimRepresentation toRepresentation(ClientModel model) {
+ ClaimRepresentation rep = new ClaimRepresentation();
+ rep.setAddress(ClaimMask.hasAddress(model.getAllowedClaimsMask()));
+ rep.setEmail(ClaimMask.hasEmail(model.getAllowedClaimsMask()));
+ rep.setGender(ClaimMask.hasGender(model.getAllowedClaimsMask()));
+ rep.setLocale(ClaimMask.hasLocale(model.getAllowedClaimsMask()));
+ rep.setName(ClaimMask.hasName(model.getAllowedClaimsMask()));
+ rep.setPhone(ClaimMask.hasPhone(model.getAllowedClaimsMask()));
+ rep.setPicture(ClaimMask.hasPicture(model.getAllowedClaimsMask()));
+ rep.setProfile(ClaimMask.hasProfile(model.getAllowedClaimsMask()));
+ rep.setWebsite(ClaimMask.hasWebsite(model.getAllowedClaimsMask()));
+ rep.setUsername(ClaimMask.hasUsername(model.getAllowedClaimsMask()));
+ return rep;
+ }
+
+ public static SocialLinkRepresentation toRepresentation(SocialLinkModel socialLink) {
+ SocialLinkRepresentation rep = new SocialLinkRepresentation();
+ rep.setSocialUsername(socialLink.getSocialUsername());
+ rep.setSocialProvider(socialLink.getSocialProvider());
+ rep.setSocialUserId(socialLink.getSocialUserId());
+ return rep;
+ }
+
+ public static UserSessionRepresentation toRepresentation(UserSessionModel session) {
+ UserSessionRepresentation rep = new UserSessionRepresentation();
+ rep.setId(session.getId());
+ rep.setStart(((long)session.getStarted()) * 1000L);
+ rep.setLastAccess(((long)session.getLastSessionRefresh())* 1000L);
+ rep.setUser(session.getUser().getUsername());
+ rep.setIpAddress(session.getIpAddress());
+ for (ClientSessionModel clientSession : session.getClientSessions()) {
+ ClientModel client = clientSession.getClient();
+ if (client instanceof ApplicationModel) {
+ rep.getApplications().add(client.getClientId());
+ } else if (client instanceof OAuthClientModel) {
+ rep.getClients().put(client.getId(), client.getClientId());
+ }
+ }
+ return rep;
+ }
+
+ public static ApplicationRepresentation toRepresentation(ApplicationModel applicationModel) {
+ ApplicationRepresentation rep = new ApplicationRepresentation();
+ rep.setId(applicationModel.getId());
+ rep.setName(applicationModel.getName());
+ rep.setEnabled(applicationModel.isEnabled());
+ rep.setAdminUrl(applicationModel.getManagementUrl());
+ rep.setPublicClient(applicationModel.isPublicClient());
+ rep.setFullScopeAllowed(applicationModel.isFullScopeAllowed());
+ rep.setBearerOnly(applicationModel.isBearerOnly());
+ rep.setSurrogateAuthRequired(applicationModel.isSurrogateAuthRequired());
+ rep.setBaseUrl(applicationModel.getBaseUrl());
+ rep.setNotBefore(applicationModel.getNotBefore());
+
+ Set<String> redirectUris = applicationModel.getRedirectUris();
+ if (redirectUris != null) {
+ rep.setRedirectUris(new LinkedList<String>(redirectUris));
+ }
+
+ Set<String> webOrigins = applicationModel.getWebOrigins();
+ if (webOrigins != null) {
+ rep.setWebOrigins(new LinkedList<String>(webOrigins));
+ }
+
+ if (!applicationModel.getDefaultRoles().isEmpty()) {
+ rep.setDefaultRoles(applicationModel.getDefaultRoles().toArray(new String[0]));
+ }
+
+ return rep;
+ }
+
+ public static OAuthClientRepresentation toRepresentation(OAuthClientModel model) {
+ OAuthClientRepresentation rep = new OAuthClientRepresentation();
+ rep.setId(model.getId());
+ rep.setName(model.getClientId());
+ rep.setEnabled(model.isEnabled());
+ rep.setPublicClient(model.isPublicClient());
+ rep.setFullScopeAllowed(model.isFullScopeAllowed());
+ rep.setDirectGrantsOnly(model.isDirectGrantsOnly());
+ Set<String> redirectUris = model.getRedirectUris();
+ if (redirectUris != null) {
+ rep.setRedirectUris(new LinkedList<String>(redirectUris));
+ }
+
+ Set<String> webOrigins = model.getWebOrigins();
+ if (webOrigins != null) {
+ rep.setWebOrigins(new LinkedList<String>(webOrigins));
+ }
+ rep.setNotBefore(model.getNotBefore());
+ return rep;
+ }
+
+ public static UserFederationProviderRepresentation toRepresentation(UserFederationProviderModel model) {
+ UserFederationProviderRepresentation rep = new UserFederationProviderRepresentation();
+ rep.setId(model.getId());
+ rep.setConfig(model.getConfig());
+ rep.setProviderName(model.getProviderName());
+ rep.setPriority(model.getPriority());
+ rep.setDisplayName(model.getDisplayName());
+ rep.setFullSyncPeriod(model.getFullSyncPeriod());
+ rep.setChangedSyncPeriod(model.getChangedSyncPeriod());
+ rep.setLastSync(model.getLastSync());
+ return rep;
+ }
+}
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 45fae43..9d1e2c1 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
@@ -119,7 +119,7 @@ public class RealmAdminResource {
@Produces("application/json")
public RealmRepresentation getRealm() {
if (auth.hasView()) {
- RealmRepresentation rep = ModelToRepresentation.toRepresentation(realm);
+ RealmRepresentation rep = ModelToRepresentation.toRepresentation(realm, false);
if (session.realms() instanceof CacheRealmProvider) {
CacheRealmProvider cacheRealmProvider = (CacheRealmProvider)session.realms();
rep.setRealmCacheEnabled(cacheRealmProvider.isEnabled());
diff --git a/services/src/main/java/org/keycloak/services/resources/admin/RealmsAdminResource.java b/services/src/main/java/org/keycloak/services/resources/admin/RealmsAdminResource.java
index ab703ac..096b0f8 100755
--- a/services/src/main/java/org/keycloak/services/resources/admin/RealmsAdminResource.java
+++ b/services/src/main/java/org/keycloak/services/resources/admin/RealmsAdminResource.java
@@ -100,7 +100,7 @@ public class RealmsAdminResource {
protected void addRealmRep(List<RealmRepresentation> reps, RealmModel realm, ApplicationModel realmManagementApplication) {
if (auth.hasAppRole(realmManagementApplication, AdminRoles.MANAGE_REALM)) {
- reps.add(ModelToRepresentation.toRepresentation(realm));
+ reps.add(ModelToRepresentation.toRepresentation(realm, false));
} else if (auth.hasOneOfAppRole(realmManagementApplication, AdminRoles.ALL_REALM_ROLES)) {
RealmRepresentation rep = new RealmRepresentation();
rep.setRealm(realm.getName());
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 9a57d39..e0d29e9 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
@@ -7,6 +7,7 @@ import org.keycloak.admin.client.Keycloak;
import org.keycloak.admin.client.resource.RealmResource;
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.OAuthClientRepresentation;
import org.keycloak.representations.idm.RealmRepresentation;
@@ -42,6 +43,7 @@ public abstract class AbstractClientTest {
RealmModel testRealm = manager.createRealm(REALM_NAME);
testRealm.setEnabled(true);
+ KeycloakModelUtils.generateRealmKeys(testRealm);
}
});
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/RealmTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/RealmTest.java
index d3bbca9..9bb4419 100644
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/RealmTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/admin/RealmTest.java
@@ -6,7 +6,11 @@ import org.keycloak.models.RealmModel;
import org.keycloak.representations.idm.RealmRepresentation;
import org.keycloak.services.managers.RealmManager;
+import java.util.List;
+
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
/**
@@ -16,7 +20,13 @@ public class RealmTest extends AbstractClientTest {
@Test
public void getRealms() {
- assertNames(keycloak.realms().findAll(), "master", "test", REALM_NAME);
+ List<RealmRepresentation> realms = keycloak.realms().findAll();
+ assertNames(realms, "master", "test", REALM_NAME);
+
+ for (RealmRepresentation rep : realms) {
+ assertNull(rep.getPrivateKey());
+ assertNotNull(rep.getPublicKey());
+ }
}
@Test
@@ -65,6 +75,9 @@ public class RealmTest extends AbstractClientTest {
RealmRepresentation rep = realm.toRepresentation();
assertEquals(REALM_NAME, rep.getRealm());
assertTrue(rep.isEnabled());
+
+ assertNull(rep.getPrivateKey());
+ assertNotNull(rep.getPublicKey());
}
}
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/model/ModelTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/model/ModelTest.java
index 5fe7262..9c99085 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/model/ModelTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/model/ModelTest.java
@@ -67,7 +67,7 @@ public class ModelTest extends AbstractModelTest {
}
private RealmModel importExport(RealmModel src, String copyName) {
- RealmRepresentation representation = ModelToRepresentation.toRepresentation(src);
+ RealmRepresentation representation = ModelToRepresentation.toRepresentation(src, true);
representation.setRealm(copyName);
representation.setId(copyName);
RealmModel copy = realmManager.importRealm(representation);