parent
74429e8855
commit
c366901224
1 changed files with 114 additions and 115 deletions
|
@ -17,22 +17,100 @@
|
||||||
|
|
||||||
package org.keycloak.quarkus.deployment;
|
package org.keycloak.quarkus.deployment;
|
||||||
|
|
||||||
import static org.keycloak.quarkus.runtime.KeycloakRecorder.DEFAULT_HEALTH_ENDPOINT;
|
import io.quarkus.agroal.spi.JdbcDataSourceBuildItem;
|
||||||
import static org.keycloak.quarkus.runtime.KeycloakRecorder.DEFAULT_METRICS_ENDPOINT;
|
import io.quarkus.arc.deployment.BuildTimeConditionBuildItem;
|
||||||
import static org.keycloak.quarkus.runtime.Providers.getProviderManager;
|
import io.quarkus.datasource.deployment.spi.DevServicesDatasourceResultBuildItem;
|
||||||
import static org.keycloak.quarkus.runtime.configuration.Configuration.getConfig;
|
import io.quarkus.deployment.IsDevelopment;
|
||||||
import static org.keycloak.quarkus.runtime.configuration.Configuration.getPropertyNames;
|
import io.quarkus.deployment.annotations.BuildProducer;
|
||||||
import static org.keycloak.quarkus.runtime.configuration.MicroProfileConfigProvider.NS_KEYCLOAK_PREFIX;
|
import io.quarkus.deployment.annotations.BuildStep;
|
||||||
import static org.keycloak.quarkus.runtime.configuration.MicroProfileConfigProvider.NS_QUARKUS;
|
import io.quarkus.deployment.annotations.Consume;
|
||||||
import static org.keycloak.quarkus.runtime.configuration.QuarkusPropertiesConfigSource.QUARKUS_PROPERTY_ENABLED;
|
import io.quarkus.deployment.annotations.ExecutionTime;
|
||||||
import static org.keycloak.quarkus.runtime.storage.legacy.database.LegacyJpaConnectionProviderFactory.QUERY_PROPERTY_PREFIX;
|
import io.quarkus.deployment.annotations.Record;
|
||||||
import static org.keycloak.connections.jpa.util.JpaUtils.loadSpecificNamedQueries;
|
import io.quarkus.deployment.builditem.BootstrapConfigSetupCompleteBuildItem;
|
||||||
import static org.keycloak.representations.provider.ScriptProviderDescriptor.AUTHENTICATORS;
|
import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
|
||||||
import static org.keycloak.representations.provider.ScriptProviderDescriptor.MAPPERS;
|
import io.quarkus.deployment.builditem.ExecutorBuildItem;
|
||||||
import static org.keycloak.representations.provider.ScriptProviderDescriptor.POLICIES;
|
import io.quarkus.deployment.builditem.FeatureBuildItem;
|
||||||
import static org.keycloak.quarkus.runtime.Environment.getProviderFiles;
|
import io.quarkus.deployment.builditem.GeneratedResourceBuildItem;
|
||||||
import static org.keycloak.theme.ClasspathThemeProviderFactory.KEYCLOAK_THEMES_JSON;
|
import io.quarkus.deployment.builditem.HotDeploymentWatchedFileBuildItem;
|
||||||
import static org.keycloak.representations.provider.ScriptProviderDescriptor.SAML_MAPPERS;
|
import io.quarkus.deployment.builditem.IndexDependencyBuildItem;
|
||||||
|
import io.quarkus.deployment.builditem.StaticInitConfigSourceProviderBuildItem;
|
||||||
|
import io.quarkus.hibernate.orm.deployment.AdditionalJpaModelBuildItem;
|
||||||
|
import io.quarkus.hibernate.orm.deployment.HibernateOrmConfig;
|
||||||
|
import io.quarkus.hibernate.orm.deployment.PersistenceXmlDescriptorBuildItem;
|
||||||
|
import io.quarkus.hibernate.orm.deployment.integration.HibernateOrmIntegrationRuntimeConfiguredBuildItem;
|
||||||
|
import io.quarkus.resteasy.server.common.deployment.ResteasyDeploymentCustomizerBuildItem;
|
||||||
|
import io.quarkus.runtime.configuration.ProfileManager;
|
||||||
|
import io.quarkus.vertx.http.deployment.FilterBuildItem;
|
||||||
|
import io.quarkus.vertx.http.deployment.NonApplicationRootPathBuildItem;
|
||||||
|
import io.quarkus.vertx.http.deployment.RouteBuildItem;
|
||||||
|
import io.smallrye.config.ConfigValue;
|
||||||
|
import org.hibernate.cfg.AvailableSettings;
|
||||||
|
import org.hibernate.jpa.boot.internal.ParsedPersistenceXmlDescriptor;
|
||||||
|
import org.hibernate.jpa.boot.internal.PersistenceXmlParser;
|
||||||
|
import org.jboss.jandex.AnnotationInstance;
|
||||||
|
import org.jboss.jandex.AnnotationTarget;
|
||||||
|
import org.jboss.jandex.ClassInfo;
|
||||||
|
import org.jboss.jandex.DotName;
|
||||||
|
import org.jboss.jandex.IndexView;
|
||||||
|
import org.jboss.logging.Logger;
|
||||||
|
import org.jboss.resteasy.plugins.server.servlet.ResteasyContextParameters;
|
||||||
|
import org.jboss.resteasy.spi.ResteasyDeployment;
|
||||||
|
import org.keycloak.Config;
|
||||||
|
import org.keycloak.authentication.AuthenticatorSpi;
|
||||||
|
import org.keycloak.authentication.authenticators.browser.DeployedScriptAuthenticatorFactory;
|
||||||
|
import org.keycloak.authorization.policy.provider.PolicySpi;
|
||||||
|
import org.keycloak.authorization.policy.provider.js.DeployedScriptPolicyFactory;
|
||||||
|
import org.keycloak.common.Profile;
|
||||||
|
import org.keycloak.common.crypto.FipsMode;
|
||||||
|
import org.keycloak.common.profile.PropertiesFileProfileConfigResolver;
|
||||||
|
import org.keycloak.common.util.StreamUtil;
|
||||||
|
import org.keycloak.config.SecurityOptions;
|
||||||
|
import org.keycloak.config.StorageOptions;
|
||||||
|
import org.keycloak.connections.jpa.DefaultJpaConnectionProviderFactory;
|
||||||
|
import org.keycloak.connections.jpa.JpaConnectionProvider;
|
||||||
|
import org.keycloak.connections.jpa.JpaConnectionSpi;
|
||||||
|
import org.keycloak.connections.jpa.updater.liquibase.LiquibaseJpaUpdaterProviderFactory;
|
||||||
|
import org.keycloak.connections.jpa.updater.liquibase.conn.DefaultLiquibaseConnectionProvider;
|
||||||
|
import org.keycloak.models.map.storage.jpa.EventListenerIntegrator;
|
||||||
|
import org.keycloak.models.map.storage.jpa.JpaMapStorageProviderFactory;
|
||||||
|
import org.keycloak.policy.BlacklistPasswordPolicyProviderFactory;
|
||||||
|
import org.keycloak.protocol.ProtocolMapperSpi;
|
||||||
|
import org.keycloak.protocol.oidc.mappers.DeployedScriptOIDCProtocolMapper;
|
||||||
|
import org.keycloak.protocol.saml.mappers.DeployedScriptSAMLProtocolMapper;
|
||||||
|
import org.keycloak.provider.EnvironmentDependentProviderFactory;
|
||||||
|
import org.keycloak.provider.Provider;
|
||||||
|
import org.keycloak.provider.ProviderFactory;
|
||||||
|
import org.keycloak.provider.ProviderManager;
|
||||||
|
import org.keycloak.provider.Spi;
|
||||||
|
import org.keycloak.quarkus.runtime.Environment;
|
||||||
|
import org.keycloak.quarkus.runtime.KeycloakRecorder;
|
||||||
|
import org.keycloak.quarkus.runtime.QuarkusProfileConfigResolver;
|
||||||
|
import org.keycloak.quarkus.runtime.configuration.Configuration;
|
||||||
|
import org.keycloak.quarkus.runtime.configuration.KeycloakConfigSourceProvider;
|
||||||
|
import org.keycloak.quarkus.runtime.configuration.MicroProfileConfigProvider;
|
||||||
|
import org.keycloak.quarkus.runtime.configuration.PersistedConfigSource;
|
||||||
|
import org.keycloak.quarkus.runtime.configuration.QuarkusPropertiesConfigSource;
|
||||||
|
import org.keycloak.quarkus.runtime.configuration.mappers.PropertyMapper;
|
||||||
|
import org.keycloak.quarkus.runtime.configuration.mappers.PropertyMappers;
|
||||||
|
import org.keycloak.quarkus.runtime.integration.jaxrs.QuarkusKeycloakApplication;
|
||||||
|
import org.keycloak.quarkus.runtime.integration.web.NotFoundHandler;
|
||||||
|
import org.keycloak.quarkus.runtime.services.health.KeycloakReadyHealthCheck;
|
||||||
|
import org.keycloak.quarkus.runtime.storage.database.jpa.NamedJpaConnectionProviderFactory;
|
||||||
|
import org.keycloak.quarkus.runtime.themes.FlatClasspathThemeResourceProviderFactory;
|
||||||
|
import org.keycloak.representations.provider.ScriptProviderDescriptor;
|
||||||
|
import org.keycloak.representations.provider.ScriptProviderMetadata;
|
||||||
|
import org.keycloak.services.ServicesLogger;
|
||||||
|
import org.keycloak.theme.ClasspathThemeProviderFactory;
|
||||||
|
import org.keycloak.theme.ClasspathThemeResourceProviderFactory;
|
||||||
|
import org.keycloak.theme.FolderThemeProviderFactory;
|
||||||
|
import org.keycloak.theme.JarThemeProviderFactory;
|
||||||
|
import org.keycloak.theme.ThemeResourceSpi;
|
||||||
|
import org.keycloak.transaction.JBossJtaTransactionManagerLookup;
|
||||||
|
import org.keycloak.url.DefaultHostnameProviderFactory;
|
||||||
|
import org.keycloak.url.FixedHostnameProviderFactory;
|
||||||
|
import org.keycloak.url.RequestHostnameProviderFactory;
|
||||||
|
import org.keycloak.util.JsonSerialization;
|
||||||
|
import org.keycloak.vault.FilesPlainTextVaultProviderFactory;
|
||||||
|
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.spi.PersistenceUnitTransactionType;
|
import javax.persistence.spi.PersistenceUnitTransactionType;
|
||||||
|
@ -60,103 +138,22 @@ import java.util.function.Predicate;
|
||||||
import java.util.jar.JarEntry;
|
import java.util.jar.JarEntry;
|
||||||
import java.util.jar.JarFile;
|
import java.util.jar.JarFile;
|
||||||
|
|
||||||
import io.quarkus.agroal.spi.JdbcDataSourceBuildItem;
|
import static org.keycloak.connections.jpa.util.JpaUtils.loadSpecificNamedQueries;
|
||||||
import io.quarkus.arc.deployment.BuildTimeConditionBuildItem;
|
import static org.keycloak.quarkus.runtime.Environment.getProviderFiles;
|
||||||
import io.quarkus.datasource.deployment.spi.DevServicesDatasourceResultBuildItem;
|
import static org.keycloak.quarkus.runtime.KeycloakRecorder.DEFAULT_HEALTH_ENDPOINT;
|
||||||
import io.quarkus.deployment.IsDevelopment;
|
import static org.keycloak.quarkus.runtime.KeycloakRecorder.DEFAULT_METRICS_ENDPOINT;
|
||||||
import io.quarkus.deployment.annotations.Consume;
|
import static org.keycloak.quarkus.runtime.Providers.getProviderManager;
|
||||||
import io.quarkus.deployment.builditem.BootstrapConfigSetupCompleteBuildItem;
|
import static org.keycloak.quarkus.runtime.configuration.Configuration.getConfig;
|
||||||
import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
|
import static org.keycloak.quarkus.runtime.configuration.Configuration.getPropertyNames;
|
||||||
import io.quarkus.deployment.builditem.ExecutorBuildItem;
|
import static org.keycloak.quarkus.runtime.configuration.MicroProfileConfigProvider.NS_KEYCLOAK_PREFIX;
|
||||||
import io.quarkus.deployment.builditem.GeneratedResourceBuildItem;
|
import static org.keycloak.quarkus.runtime.configuration.MicroProfileConfigProvider.NS_QUARKUS;
|
||||||
import io.quarkus.deployment.builditem.HotDeploymentWatchedFileBuildItem;
|
import static org.keycloak.quarkus.runtime.configuration.QuarkusPropertiesConfigSource.QUARKUS_PROPERTY_ENABLED;
|
||||||
import io.quarkus.deployment.builditem.IndexDependencyBuildItem;
|
import static org.keycloak.quarkus.runtime.storage.legacy.database.LegacyJpaConnectionProviderFactory.QUERY_PROPERTY_PREFIX;
|
||||||
import io.quarkus.deployment.builditem.StaticInitConfigSourceProviderBuildItem;
|
import static org.keycloak.representations.provider.ScriptProviderDescriptor.AUTHENTICATORS;
|
||||||
import io.quarkus.hibernate.orm.deployment.AdditionalJpaModelBuildItem;
|
import static org.keycloak.representations.provider.ScriptProviderDescriptor.MAPPERS;
|
||||||
import io.quarkus.hibernate.orm.deployment.HibernateOrmConfig;
|
import static org.keycloak.representations.provider.ScriptProviderDescriptor.POLICIES;
|
||||||
import io.quarkus.hibernate.orm.deployment.PersistenceXmlDescriptorBuildItem;
|
import static org.keycloak.representations.provider.ScriptProviderDescriptor.SAML_MAPPERS;
|
||||||
import io.quarkus.hibernate.orm.deployment.integration.HibernateOrmIntegrationRuntimeConfiguredBuildItem;
|
import static org.keycloak.theme.ClasspathThemeProviderFactory.KEYCLOAK_THEMES_JSON;
|
||||||
import io.quarkus.resteasy.server.common.deployment.ResteasyDeploymentCustomizerBuildItem;
|
|
||||||
import io.quarkus.runtime.configuration.ProfileManager;
|
|
||||||
import io.quarkus.vertx.http.deployment.NonApplicationRootPathBuildItem;
|
|
||||||
import io.quarkus.vertx.http.deployment.RouteBuildItem;
|
|
||||||
import io.quarkus.vertx.http.runtime.HttpBuildTimeConfig;
|
|
||||||
import io.smallrye.config.ConfigValue;
|
|
||||||
import org.hibernate.cfg.AvailableSettings;
|
|
||||||
import org.hibernate.jpa.boot.internal.ParsedPersistenceXmlDescriptor;
|
|
||||||
import org.hibernate.jpa.boot.internal.PersistenceXmlParser;
|
|
||||||
import org.jboss.jandex.AnnotationInstance;
|
|
||||||
import org.jboss.jandex.AnnotationTarget;
|
|
||||||
import org.jboss.jandex.ClassInfo;
|
|
||||||
import org.jboss.jandex.DotName;
|
|
||||||
import org.jboss.jandex.IndexView;
|
|
||||||
import org.jboss.logging.Logger;
|
|
||||||
import org.jboss.resteasy.plugins.server.servlet.ResteasyContextParameters;
|
|
||||||
import org.jboss.resteasy.spi.ResteasyDeployment;
|
|
||||||
import org.keycloak.Config;
|
|
||||||
import org.keycloak.common.crypto.FipsMode;
|
|
||||||
import org.keycloak.common.profile.PropertiesFileProfileConfigResolver;
|
|
||||||
import org.keycloak.config.SecurityOptions;
|
|
||||||
import org.keycloak.config.StorageOptions;
|
|
||||||
import org.keycloak.connections.jpa.JpaConnectionProvider;
|
|
||||||
import org.keycloak.connections.jpa.JpaConnectionSpi;
|
|
||||||
import org.keycloak.models.map.storage.jpa.EventListenerIntegrator;
|
|
||||||
import org.keycloak.models.map.storage.jpa.JpaMapStorageProviderFactory;
|
|
||||||
import org.keycloak.protocol.saml.mappers.DeployedScriptSAMLProtocolMapper;
|
|
||||||
import org.keycloak.quarkus.runtime.QuarkusProfileConfigResolver;
|
|
||||||
import org.keycloak.quarkus.runtime.configuration.PersistedConfigSource;
|
|
||||||
import org.keycloak.quarkus.runtime.configuration.QuarkusPropertiesConfigSource;
|
|
||||||
import org.keycloak.quarkus.runtime.configuration.mappers.PropertyMapper;
|
|
||||||
import org.keycloak.quarkus.runtime.configuration.mappers.PropertyMappers;
|
|
||||||
import org.keycloak.quarkus.runtime.integration.jaxrs.QuarkusKeycloakApplication;
|
|
||||||
import org.keycloak.authentication.AuthenticatorSpi;
|
|
||||||
import org.keycloak.authentication.authenticators.browser.DeployedScriptAuthenticatorFactory;
|
|
||||||
import org.keycloak.authorization.policy.provider.PolicySpi;
|
|
||||||
import org.keycloak.authorization.policy.provider.js.DeployedScriptPolicyFactory;
|
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.common.util.StreamUtil;
|
|
||||||
import org.keycloak.quarkus.runtime.configuration.Configuration;
|
|
||||||
import org.keycloak.quarkus.runtime.configuration.KeycloakConfigSourceProvider;
|
|
||||||
import org.keycloak.quarkus.runtime.configuration.MicroProfileConfigProvider;
|
|
||||||
import org.keycloak.connections.jpa.DefaultJpaConnectionProviderFactory;
|
|
||||||
import org.keycloak.connections.jpa.updater.liquibase.LiquibaseJpaUpdaterProviderFactory;
|
|
||||||
import org.keycloak.connections.jpa.updater.liquibase.conn.DefaultLiquibaseConnectionProvider;
|
|
||||||
import org.keycloak.policy.BlacklistPasswordPolicyProviderFactory;
|
|
||||||
import org.keycloak.protocol.ProtocolMapperSpi;
|
|
||||||
import org.keycloak.protocol.oidc.mappers.DeployedScriptOIDCProtocolMapper;
|
|
||||||
import org.keycloak.provider.EnvironmentDependentProviderFactory;
|
|
||||||
import org.keycloak.provider.Provider;
|
|
||||||
import org.keycloak.provider.ProviderFactory;
|
|
||||||
import org.keycloak.provider.ProviderManager;
|
|
||||||
import org.keycloak.provider.Spi;
|
|
||||||
import org.keycloak.quarkus.runtime.KeycloakRecorder;
|
|
||||||
|
|
||||||
import io.quarkus.deployment.annotations.BuildProducer;
|
|
||||||
import io.quarkus.deployment.annotations.BuildStep;
|
|
||||||
import io.quarkus.deployment.annotations.ExecutionTime;
|
|
||||||
import io.quarkus.deployment.annotations.Record;
|
|
||||||
import io.quarkus.deployment.builditem.FeatureBuildItem;
|
|
||||||
import io.quarkus.vertx.http.deployment.FilterBuildItem;
|
|
||||||
|
|
||||||
import org.keycloak.quarkus.runtime.services.health.KeycloakReadyHealthCheck;
|
|
||||||
import org.keycloak.quarkus.runtime.storage.database.jpa.NamedJpaConnectionProviderFactory;
|
|
||||||
import org.keycloak.quarkus.runtime.themes.FlatClasspathThemeResourceProviderFactory;
|
|
||||||
import org.keycloak.representations.provider.ScriptProviderDescriptor;
|
|
||||||
import org.keycloak.representations.provider.ScriptProviderMetadata;
|
|
||||||
import org.keycloak.quarkus.runtime.integration.web.NotFoundHandler;
|
|
||||||
import org.keycloak.services.ServicesLogger;
|
|
||||||
import org.keycloak.theme.ClasspathThemeProviderFactory;
|
|
||||||
import org.keycloak.theme.ClasspathThemeResourceProviderFactory;
|
|
||||||
import org.keycloak.theme.FolderThemeProviderFactory;
|
|
||||||
import org.keycloak.theme.JarThemeProviderFactory;
|
|
||||||
import org.keycloak.theme.ThemeResourceSpi;
|
|
||||||
import org.keycloak.transaction.JBossJtaTransactionManagerLookup;
|
|
||||||
import org.keycloak.quarkus.runtime.Environment;
|
|
||||||
import org.keycloak.url.DefaultHostnameProviderFactory;
|
|
||||||
import org.keycloak.url.FixedHostnameProviderFactory;
|
|
||||||
import org.keycloak.url.RequestHostnameProviderFactory;
|
|
||||||
import org.keycloak.util.JsonSerialization;
|
|
||||||
import org.keycloak.vault.FilesPlainTextVaultProviderFactory;
|
|
||||||
|
|
||||||
class KeycloakProcessor {
|
class KeycloakProcessor {
|
||||||
|
|
||||||
|
@ -221,7 +218,9 @@ class KeycloakProcessor {
|
||||||
return new ConfigBuildItem();
|
return new ConfigBuildItem();
|
||||||
}
|
}
|
||||||
|
|
||||||
// called from setCryptoProvider now
|
@Record(ExecutionTime.STATIC_INIT)
|
||||||
|
@BuildStep
|
||||||
|
@Consume(ConfigBuildItem.class)
|
||||||
ProfileBuildItem configureProfile(KeycloakRecorder recorder) {
|
ProfileBuildItem configureProfile(KeycloakRecorder recorder) {
|
||||||
Profile profile = Profile.configure(
|
Profile profile = Profile.configure(
|
||||||
new QuarkusProfileConfigResolver(),
|
new QuarkusProfileConfigResolver(),
|
||||||
|
@ -627,10 +626,10 @@ class KeycloakProcessor {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Consume(BootstrapConfigSetupCompleteBuildItem.class)
|
@Consume(BootstrapConfigSetupCompleteBuildItem.class)
|
||||||
|
@Consume(ProfileBuildItem.class)
|
||||||
@BuildStep
|
@BuildStep
|
||||||
@Record(ExecutionTime.STATIC_INIT)
|
@Record(ExecutionTime.STATIC_INIT)
|
||||||
void setCryptoProvider(KeycloakRecorder recorder) {
|
void setCryptoProvider(KeycloakRecorder recorder) {
|
||||||
configureProfile(recorder);
|
|
||||||
FipsMode fipsMode = Configuration.getOptionalValue(NS_KEYCLOAK_PREFIX + SecurityOptions.FIPS_MODE.getKey())
|
FipsMode fipsMode = Configuration.getOptionalValue(NS_KEYCLOAK_PREFIX + SecurityOptions.FIPS_MODE.getKey())
|
||||||
.map(FipsMode::valueOfOption)
|
.map(FipsMode::valueOfOption)
|
||||||
.orElse(FipsMode.DISABLED);
|
.orElse(FipsMode.DISABLED);
|
||||||
|
|
Loading…
Reference in a new issue