[KEYCLOAK-11679] - Creating keys right after master realm creation
This commit is contained in:
parent
b6060c52b7
commit
ee83f8c16f
4 changed files with 9 additions and 11 deletions
|
@ -63,13 +63,13 @@ class KeycloakProcessor {
|
|||
*/
|
||||
@Record(ExecutionTime.STATIC_INIT)
|
||||
@BuildStep
|
||||
void configureBuiltInProviders(KeycloakRecorder recorder, BuildProducer<BeanContainerListenerBuildItem> container) {
|
||||
container.produce(new BeanContainerListenerBuildItem(recorder.configSessionFactory(loadBuiltInFactories())));
|
||||
void configureBuiltInProviders(KeycloakRecorder recorder) {
|
||||
recorder.configSessionFactory(loadBuiltInFactories());
|
||||
}
|
||||
|
||||
private Map<Spi, Set<Class<? extends ProviderFactory>>> loadBuiltInFactories() {
|
||||
ProviderManager pm = new ProviderManager(
|
||||
KeycloakDeploymentInfo.create().services(), getClass().getClassLoader(), Config.scope().getArray("providers"));
|
||||
KeycloakDeploymentInfo.create().services(), Thread.currentThread().getContextClassLoader(), Config.scope().getArray("providers"));
|
||||
Map<Spi, Set<Class<? extends ProviderFactory>>> result = new HashMap<>();
|
||||
|
||||
for (Spi spi : pm.loadSpis()) {
|
||||
|
|
|
@ -95,7 +95,7 @@ public final class QuarkusKeycloakSessionFactory extends DefaultKeycloakSessionF
|
|||
|
||||
private ProviderLoader createUserProviderLoader() {
|
||||
return UserProviderLoader
|
||||
.create(KeycloakDeploymentInfo.create().services(), getClass().getClassLoader());
|
||||
.create(KeycloakDeploymentInfo.create().services(), Thread.currentThread().getContextClassLoader());
|
||||
}
|
||||
|
||||
private ProviderFactory lookupProviderFactory(Class<? extends ProviderFactory> factoryClazz) {
|
||||
|
|
|
@ -60,6 +60,7 @@ import org.keycloak.models.UserModel;
|
|||
import org.keycloak.models.UserProvider;
|
||||
import org.keycloak.models.dblock.DBLockManager;
|
||||
import org.keycloak.models.dblock.DBLockProvider;
|
||||
import org.keycloak.models.utils.DefaultKeyProviders;
|
||||
import org.keycloak.models.utils.KeycloakModelUtils;
|
||||
import org.keycloak.models.utils.RepresentationToModel;
|
||||
import org.keycloak.provider.ServerInfoAwareProviderFactory;
|
||||
|
@ -380,6 +381,8 @@ public class QuarkusJpaConnectionProviderFactory implements JpaConnectionProvide
|
|||
|
||||
if (createMasterRealm) {
|
||||
applianceBootstrap.createMasterRealm();
|
||||
//TODO: Remove this to reduce startup time. See https://issues.redhat.com/browse/KEYCLOAK-14308.
|
||||
DefaultKeyProviders.createProviders(session.getContext().getRealm());
|
||||
}
|
||||
|
||||
session.getTransactionManager().commit();
|
||||
|
|
|
@ -62,12 +62,7 @@ public class KeycloakRecorder {
|
|||
};
|
||||
}
|
||||
|
||||
public BeanContainerListener configSessionFactory(Map<Spi, Set<Class<? extends ProviderFactory>>> factories) {
|
||||
return new BeanContainerListener() {
|
||||
@Override
|
||||
public void created(BeanContainer container) {
|
||||
QuarkusKeycloakSessionFactory.setInstance(new QuarkusKeycloakSessionFactory(factories));
|
||||
}
|
||||
};
|
||||
public void configSessionFactory(Map<Spi, Set<Class<? extends ProviderFactory>>> factories) {
|
||||
QuarkusKeycloakSessionFactory.setInstance(new QuarkusKeycloakSessionFactory(factories));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue