KEYCLOAK-6050 Fix export doesn't export internal realm rep
This commit is contained in:
parent
71e6f52f7d
commit
27b5e1aae2
5 changed files with 24 additions and 19 deletions
|
@ -62,7 +62,7 @@ public class SingleFileExportProvider implements ExportProvider {
|
|||
List<RealmModel> realms = session.realms().getRealms();
|
||||
List<RealmRepresentation> reps = new ArrayList<RealmRepresentation>();
|
||||
for (RealmModel realm : realms) {
|
||||
reps.add(ExportUtils.exportRealm(session, realm, true));
|
||||
reps.add(ExportUtils.exportRealm(session, realm, true, true));
|
||||
}
|
||||
|
||||
writeToFile(reps);
|
||||
|
@ -80,7 +80,7 @@ public class SingleFileExportProvider implements ExportProvider {
|
|||
@Override
|
||||
protected void runExportImportTask(KeycloakSession session) throws IOException {
|
||||
RealmModel realm = session.realms().getRealmByName(realmName);
|
||||
RealmRepresentation realmRep = ExportUtils.exportRealm(session, realm, true);
|
||||
RealmRepresentation realmRep = ExportUtils.exportRealm(session, realm, true, true);
|
||||
writeToFile(realmRep);
|
||||
}
|
||||
|
||||
|
|
|
@ -84,16 +84,16 @@ import com.fasterxml.jackson.databind.SerializationFeature;
|
|||
*/
|
||||
public class ExportUtils {
|
||||
|
||||
public static RealmRepresentation exportRealm(KeycloakSession session, RealmModel realm, boolean includeUsers) {
|
||||
public static RealmRepresentation exportRealm(KeycloakSession session, RealmModel realm, boolean includeUsers, boolean internal) {
|
||||
ExportOptions opts = new ExportOptions(false, true, true);
|
||||
if (includeUsers) {
|
||||
opts.setUsersIncluded(true);
|
||||
}
|
||||
return exportRealm(session, realm, opts);
|
||||
return exportRealm(session, realm, opts, internal);
|
||||
}
|
||||
|
||||
public static RealmRepresentation exportRealm(KeycloakSession session, RealmModel realm, ExportOptions options) {
|
||||
RealmRepresentation rep = ModelToRepresentation.toRepresentation(realm, false);
|
||||
public static RealmRepresentation exportRealm(KeycloakSession session, RealmModel realm, ExportOptions options, boolean internal) {
|
||||
RealmRepresentation rep = ModelToRepresentation.toRepresentation(realm, internal);
|
||||
ModelToRepresentation.exportAuthenticationFlows(realm, rep);
|
||||
ModelToRepresentation.exportRequiredActions(realm, rep);
|
||||
|
||||
|
|
|
@ -75,7 +75,7 @@ public abstract class MultipleStepsExportProvider implements ExportProvider {
|
|||
@Override
|
||||
protected void runExportImportTask(KeycloakSession session) throws IOException {
|
||||
RealmModel realm = session.realms().getRealmByName(realmName);
|
||||
RealmRepresentation rep = ExportUtils.exportRealm(session, realm, exportUsersIntoRealmFile);
|
||||
RealmRepresentation rep = ExportUtils.exportRealm(session, realm, exportUsersIntoRealmFile, true);
|
||||
writeRealm(realmName + "-realm.json", rep);
|
||||
logger.info("Realm '" + realmName + "' - data exported");
|
||||
|
||||
|
|
|
@ -955,7 +955,7 @@ public class RealmAdminResource {
|
|||
boolean clientsExported = exportClients != null && exportClients;
|
||||
|
||||
ExportOptions options = new ExportOptions(false, clientsExported, groupsAndRolesExported);
|
||||
RealmRepresentation rep = ExportUtils.exportRealm(session, realm, options);
|
||||
RealmRepresentation rep = ExportUtils.exportRealm(session, realm, options, false);
|
||||
return stripForExport(session, rep);
|
||||
}
|
||||
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
package org.keycloak.testsuite.exportimport;
|
||||
|
||||
import org.jboss.arquillian.container.spi.client.container.LifecycleException;
|
||||
import org.jboss.arquillian.container.test.api.Deployment;
|
||||
import org.jboss.shrinkwrap.api.spec.WebArchive;
|
||||
import org.junit.After;
|
||||
import org.junit.Test;
|
||||
import org.keycloak.admin.client.resource.RealmResource;
|
||||
|
@ -25,23 +27,16 @@ import org.keycloak.exportimport.ExportImportConfig;
|
|||
import org.keycloak.exportimport.dir.DirExportProvider;
|
||||
import org.keycloak.exportimport.dir.DirExportProviderFactory;
|
||||
import org.keycloak.exportimport.singlefile.SingleFileExportProviderFactory;
|
||||
import org.keycloak.representations.idm.ComponentRepresentation;
|
||||
import org.keycloak.representations.idm.KeysMetadataRepresentation;
|
||||
import org.keycloak.representations.idm.RealmEventsConfigRepresentation;
|
||||
import org.keycloak.representations.idm.RealmRepresentation;
|
||||
import org.keycloak.representations.idm.UserRepresentation;
|
||||
import org.keycloak.representations.idm.*;
|
||||
import org.keycloak.testsuite.AbstractKeycloakTest;
|
||||
import org.keycloak.testsuite.Assert;
|
||||
import org.keycloak.testsuite.runonserver.RunHelpers;
|
||||
import org.keycloak.testsuite.runonserver.RunOnServerDeployment;
|
||||
import org.keycloak.testsuite.util.UserBuilder;
|
||||
|
||||
import java.io.File;
|
||||
import java.net.URL;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.keycloak.testsuite.admin.AbstractAdminTest.loadJson;
|
||||
|
@ -54,6 +49,11 @@ import static org.keycloak.testsuite.admin.AbstractAdminTest.loadJson;
|
|||
*/
|
||||
public class ExportImportTest extends AbstractKeycloakTest {
|
||||
|
||||
@Deployment
|
||||
public static WebArchive deploy() {
|
||||
return RunOnServerDeployment.create(ExportImportTest.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addTestRealms(List<RealmRepresentation> testRealms) {
|
||||
RealmRepresentation testRealm1 = loadJson(getClass().getResourceAsStream("/testrealm.json"), RealmRepresentation.class);
|
||||
|
@ -61,6 +61,8 @@ public class ExportImportTest extends AbstractKeycloakTest {
|
|||
testRealm1.getUsers().add(makeUser("user2"));
|
||||
testRealm1.getUsers().add(makeUser("user3"));
|
||||
|
||||
testRealm1.getSmtpServer().put("password", "secret");
|
||||
|
||||
setEventsConfig(testRealm1);
|
||||
testRealms.add(testRealm1);
|
||||
|
||||
|
@ -194,6 +196,9 @@ public class ExportImportTest extends AbstractKeycloakTest {
|
|||
assertAuthenticated("test", "user1", "password");
|
||||
assertAuthenticated("test", "user2", "password");
|
||||
assertAuthenticated("test", "user3", "password");
|
||||
|
||||
// KEYCLOAK-6050 Check SMTP password is exported/imported
|
||||
assertEquals("secret", testingClient.server("test").fetch(RunHelpers.internalRealm()).getSmtpServer().get("password"));
|
||||
}
|
||||
|
||||
private void testRealmExportImport() throws LifecycleException {
|
||||
|
|
Loading…
Reference in a new issue