Skip to content

Commit

Permalink
Merge pull request quarkusio#4725 from stuartwdouglas/jdbc-elytron
Browse files Browse the repository at this point in the history
  • Loading branch information
gsmet authored Oct 22, 2019
2 parents d703584 + 496a1e1 commit ab5874d
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import org.wildfly.security.auth.server.SecurityRealm;

import io.quarkus.agroal.deployment.DataSourceInitializedBuildItem;
import io.quarkus.arc.deployment.BeanContainerBuildItem;
import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.annotations.ExecutionTime;
Expand Down Expand Up @@ -40,6 +41,7 @@ FeatureBuildItem feature() {
@Record(ExecutionTime.STATIC_INIT)
void configureJdbcRealmAuthConfig(JdbcRecorder recorder,
BuildProducer<SecurityRealmBuildItem> securityRealm,
BeanContainerBuildItem beanContainerBuildItem, //we need this to make sure ArC is initialized
Optional<DataSourceInitializedBuildItem> dataSourceInitialized) throws Exception {
if (jdbc.enabled) {
RuntimeValue<SecurityRealm> realm = recorder.createRealm(jdbc);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,6 @@ public Provider[] get() {
}

private void registerPrincipalQuery(PrincipalQueryConfig principalQuery, JdbcSecurityRealmBuilder builder) {
if (Arc.container() == null) {
Arc.initialize();
}
DataSource dataSource = (DataSource) principalQuery.datasource
.map(name -> Arc.container().instance(name).get())
.orElse(Arc.container().instance(DataSource.class).get());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,15 @@ void services(BuildProducer<ReflectiveClassBuildItem> classes) {
classes.produce(new ReflectiveClassBuildItem(true, false, allClasses));
}

@BuildStep
void addBeans(BuildProducer<AdditionalBeanBuildItem> beans) {

beans.produce(AdditionalBeanBuildItem.unremovableOf(ElytronSecurityDomainManager.class));
beans.produce(AdditionalBeanBuildItem.unremovableOf(ElytronTokenIdentityProvider.class));
beans.produce(AdditionalBeanBuildItem.unremovableOf(ElytronPasswordIdentityProvider.class));
beans.produce(AdditionalBeanBuildItem.unremovableOf(DefaultRoleDecoder.class));
}

/**
* Create the deployment SecurityDomain using the SecurityRealm build items that have been created.
*
Expand All @@ -61,16 +70,9 @@ void services(BuildProducer<ReflectiveClassBuildItem> classes) {
*/
@BuildStep
@Record(ExecutionTime.STATIC_INIT)
SecurityDomainBuildItem build(ElytronRecorder recorder, List<SecurityRealmBuildItem> realms,
BuildProducer<AdditionalBeanBuildItem> beans)
SecurityDomainBuildItem build(ElytronRecorder recorder, List<SecurityRealmBuildItem> realms)
throws Exception {
if (realms.size() > 0) {

beans.produce(AdditionalBeanBuildItem.unremovableOf(ElytronSecurityDomainManager.class));
beans.produce(AdditionalBeanBuildItem.unremovableOf(ElytronTokenIdentityProvider.class));
beans.produce(AdditionalBeanBuildItem.unremovableOf(ElytronPasswordIdentityProvider.class));
beans.produce(AdditionalBeanBuildItem.unremovableOf(DefaultRoleDecoder.class));

// Configure the SecurityDomain.Builder from the main realm
SecurityRealmBuildItem realmBuildItem = realms.get(0);
RuntimeValue<SecurityDomain.Builder> securityDomainBuilder = recorder
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.annotations.Record;
import io.quarkus.deployment.builditem.ApplicationArchivesBuildItem;
import io.quarkus.deployment.builditem.ApplicationIndexBuildItem;
import io.quarkus.deployment.builditem.ArchiveRootBuildItem;
import io.quarkus.deployment.builditem.BytecodeTransformerBuildItem;
import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
Expand Down Expand Up @@ -126,7 +125,6 @@ public void build(RecorderContext recorderContext, HibernateOrmRecorder recorder
List<NonJpaModelBuildItem> nonJpaModelBuildItems,
List<IgnorableNonIndexedClasses> ignorableNonIndexedClassesBuildItems,
CombinedIndexBuildItem index,
ApplicationIndexBuildItem applicationIndex,
ArchiveRootBuildItem archiveRoot,
ApplicationArchivesBuildItem applicationArchivesBuildItem,
Optional<DataSourceDriverBuildItem> driverBuildItem,
Expand Down

0 comments on commit ab5874d

Please sign in to comment.