user provider refactor complete

This commit is contained in:
Bill Burke committed 2014-07-15 15:25:06 -04:00
commit 484a4c1454
199 files changed
+3712 -3088

No files matched your search

@@ -0,0 +1,85 @@
package org.keycloak.exportimport.singlefile;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.codehaus.jackson.map.ObjectMapper;
import org.jboss.logging.Logger;
import org.keycloak.exportimport.ExportProvider;
import org.keycloak.exportimport.util.ExportImportJob;
import org.keycloak.exportimport.util.ExportImportUtils;
import org.keycloak.exportimport.util.ExportUtils;
import org.keycloak.models.KeycloakSession;
import org.keycloak.models.KeycloakSessionFactory;
import org.keycloak.models.RealmModel;
import org.keycloak.representations.idm.RealmRepresentation;
import org.keycloak.util.JsonSerialization;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
public class SingleFileExportProvider implements ExportProvider {
private static final Logger logger = Logger.getLogger(SingleFileExportProvider.class);
private File file;
public SingleFileExportProvider(File file) {
this.file = file;
}
public void setFile(File file) {
this.file = file;
}
@Override
public void exportModel(KeycloakSessionFactory factory) throws IOException {
logger.infof("Exporting model into file %s", this.file.getAbsolutePath());
ExportImportUtils.runJobInTransaction(factory, new ExportImportJob() {
@Override
public void run(KeycloakSession session) throws IOException {
List<RealmModel> realms = session.model().getRealms();
List<RealmRepresentation> reps = new ArrayList<RealmRepresentation>();
for (RealmModel realm : realms) {
reps.add(ExportUtils.exportRealm(session, realm, true));
}
writeToFile(reps);
}
});
}
@Override
public void exportRealm(KeycloakSessionFactory factory, final String realmName) throws IOException {
logger.infof("Exporting realm '%s' into file %s", realmName, this.file.getAbsolutePath());
ExportImportUtils.runJobInTransaction(factory, new ExportImportJob() {
@Override
public void run(KeycloakSession session) throws IOException {
RealmModel realm = session.model().getRealmByName(realmName);
RealmRepresentation realmRep = ExportUtils.exportRealm(session, realm, true);
writeToFile(realmRep);
}
});
}
@Override
public void close() {
}
private ObjectMapper getObjectMapper() {
return JsonSerialization.prettyMapper;
}
private void writeToFile(Object reps) throws IOException {
FileOutputStream stream = new FileOutputStream(this.file);
getObjectMapper().writeValue(stream, reps);
}
}
@@ -0,0 +1,36 @@
package org.keycloak.exportimport.singlefile;
import java.io.File;
import org.keycloak.Config;
import org.keycloak.exportimport.ExportImportConfig;
import org.keycloak.exportimport.ExportProvider;
import org.keycloak.exportimport.ExportProviderFactory;
import org.keycloak.models.KeycloakSession;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
public class SingleFileExportProviderFactory implements ExportProviderFactory {
public static final String PROVIDER_ID = "singleFile";
@Override
public ExportProvider create(KeycloakSession session) {
String fileName = ExportImportConfig.getFile();
return new SingleFileExportProvider(new File(fileName));
}
@Override
public void init(Config.Scope config) {
}
@Override
public void close() {
}
@Override
public String getId() {
return PROVIDER_ID;
}
}
@@ -0,0 +1,59 @@
package org.keycloak.exportimport.singlefile;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.jboss.logging.Logger;
import org.keycloak.exportimport.ImportProvider;
import org.keycloak.exportimport.Strategy;
import org.keycloak.exportimport.util.ExportImportJob;
import org.keycloak.exportimport.util.ExportImportUtils;
import org.keycloak.exportimport.util.ExportUtils;
import org.keycloak.exportimport.util.ImportUtils;
import org.keycloak.models.KeycloakSession;
import org.keycloak.models.KeycloakSessionFactory;
import org.keycloak.models.RealmModel;
import org.keycloak.representations.idm.RealmRepresentation;
import org.keycloak.util.JsonSerialization;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
public class SingleFileImportProvider implements ImportProvider {
private static final Logger logger = Logger.getLogger(SingleFileImportProvider.class);
private File file;
public SingleFileImportProvider(File file) {
this.file = file;
}
@Override
public void importModel(KeycloakSessionFactory factory, final Strategy strategy) throws IOException {
logger.infof("Full importing from file %s", this.file.getAbsolutePath());
ExportImportUtils.runJobInTransaction(factory, new ExportImportJob() {
@Override
public void run(KeycloakSession session) throws IOException {
FileInputStream is = new FileInputStream(file);
ImportUtils.importFromStream(session, JsonSerialization.mapper, is, strategy);
}
});
}
@Override
public void importRealm(KeycloakSessionFactory factory, String realmName, Strategy strategy) throws IOException {
// TODO: import just that single realm in case that file contains many realms?
importModel(factory, strategy);
}
@Override
public void close() {
}
}
@@ -0,0 +1,34 @@
package org.keycloak.exportimport.singlefile;
import java.io.File;
import org.keycloak.Config;
import org.keycloak.exportimport.ExportImportConfig;
import org.keycloak.exportimport.ImportProvider;
import org.keycloak.exportimport.ImportProviderFactory;
import org.keycloak.models.KeycloakSession;
/**
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
*/
public class SingleFileImportProviderFactory implements ImportProviderFactory {
@Override
public ImportProvider create(KeycloakSession session) {
String fileName = ExportImportConfig.getFile();
return new SingleFileImportProvider(new File(fileName));
}
@Override
public void init(Config.Scope config) {
}
@Override
public void close() {
}
@Override
public String getId() {
return SingleFileExportProviderFactory.PROVIDER_ID;
}
}
@@ -0,0 +1 @@
org.keycloak.exportimport.singlefile.SingleFileExportProviderFactory
@@ -0,0 +1 @@
org.keycloak.exportimport.singlefile.SingleFileImportProviderFactory