Skip to content

Commit 54ef771

Browse files
committed
[PLINK-493] - PicketLinkExtension is not working in WildFly.
1 parent 2f0ca51 commit 54ef771

File tree

3 files changed

+55
-46
lines changed

3 files changed

+55
-46
lines changed

modules/base/impl/src/main/java/org/picketlink/extension/PicketLinkExtension.java

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import javax.enterprise.context.ApplicationScoped;
3030
import javax.enterprise.event.Observes;
3131
import javax.enterprise.inject.spi.AfterBeanDiscovery;
32+
import javax.enterprise.inject.spi.AfterDeploymentValidation;
3233
import javax.enterprise.inject.spi.AnnotatedType;
3334
import javax.enterprise.inject.spi.BeanManager;
3435
import javax.enterprise.inject.spi.Extension;
@@ -51,6 +52,7 @@
5152
public class PicketLinkExtension implements Extension {
5253

5354
private SecurityConfiguration securityConfiguration;
55+
private IdentityBeanDefinition identityBeanDefinition;
5456

5557
public SecurityConfiguration getSecurityConfiguration() {
5658
return this.securityConfiguration;
@@ -80,7 +82,18 @@ <T> void vetoIdentityImplementations(@Observes ProcessAnnotatedType<T> pat) {
8082
* @param abd
8183
* @param beanManager
8284
*/
83-
void initializeConfiguration(@Observes AfterBeanDiscovery abd, BeanManager beanManager) {
85+
void installIdentityBean(@Observes AfterBeanDiscovery abd, BeanManager beanManager) {
86+
this.identityBeanDefinition = new IdentityBeanDefinition(beanManager);
87+
abd.addBean(identityBeanDefinition);
88+
}
89+
90+
/**
91+
* <p>Initializes the PicketLink configuration.</p>
92+
*
93+
* @param adv
94+
* @param beanManager
95+
*/
96+
void initializeConfiguration(@Observes AfterDeploymentValidation adv, BeanManager beanManager) {
8497
ROOT_LOGGER.picketlinkBootstrap();
8598

8699
SecurityConfigurationEvent securityConfigurationEvent = new SecurityConfigurationEvent();
@@ -89,6 +102,6 @@ void initializeConfiguration(@Observes AfterBeanDiscovery abd, BeanManager beanM
89102

90103
this.securityConfiguration = securityConfigurationEvent.getBuilder().build();
91104

92-
abd.addBean(new IdentityBeanDefinition(this.securityConfiguration, beanManager));
105+
this.identityBeanDefinition.setSecurityConfiguration(this.securityConfiguration);
93106
}
94107
}

modules/base/impl/src/main/java/org/picketlink/internal/IdentityBeanDefinition.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,16 +55,19 @@ public class IdentityBeanDefinition implements Bean<DefaultIdentity>, Serializab
5555

5656
private final BeanManager beanManager;
5757
private final InjectionTarget<DefaultIdentity> injectionTarget;
58-
private final SecurityConfiguration securityConfiguration;
58+
private SecurityConfiguration securityConfiguration;
5959

60-
public IdentityBeanDefinition(SecurityConfiguration securityConfiguration, BeanManager beanManager) {
61-
this.securityConfiguration = securityConfiguration;
60+
public IdentityBeanDefinition(BeanManager beanManager) {
6261
this.beanManager = beanManager;
6362

6463
AnnotatedType<DefaultIdentity> annotatedType = this.beanManager.createAnnotatedType(getBeanClass());
6564
this.injectionTarget = this.beanManager.createInjectionTarget(annotatedType);
6665
}
6766

67+
public void setSecurityConfiguration(SecurityConfiguration securityConfiguration) {
68+
this.securityConfiguration = securityConfiguration;
69+
}
70+
6871
@Override
6972
public Set<Type> getTypes() {
7073
Set<Type> types = new HashSet<Type>();

modules/base/impl/src/main/java/org/picketlink/producer/IdentityManagementConfiguration.java

Lines changed: 34 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import org.picketlink.internal.CDIEventBridge;
99
import org.picketlink.internal.EEJPAContextInitializer;
1010

11-
import javax.enterprise.context.ApplicationScoped;
1211
import javax.enterprise.inject.Instance;
1312
import javax.inject.Inject;
1413
import javax.persistence.EntityManager;
@@ -36,7 +35,6 @@
3635
* @author Shane Bryzak
3736
* @author Pedro Igor
3837
*/
39-
@ApplicationScoped
4038
public class IdentityManagementConfiguration {
4139

4240
private static final String DEFAULT_CONFIGURATION_NAME = "default";
@@ -60,57 +58,52 @@ public class IdentityManagementConfiguration {
6058

6159
private List<IdentityConfiguration> identityConfiguration;
6260

63-
@Inject
64-
public void init() {
65-
if (this.identityConfiguration != null) {
66-
throw new RuntimeException("Identity Management Configuration already initialized.");
67-
}
68-
69-
if (ROOT_LOGGER.isDebugEnabled()) {
70-
ROOT_LOGGER.debugf("Building identity management configuration.");
71-
}
61+
/**
62+
* <p>Returns all configurations produced by the application.</p>
63+
*
64+
* @return
65+
*/
66+
List<IdentityConfiguration> getIdentityConfiguration() {
67+
if (this.identityConfiguration == null) {
68+
if (ROOT_LOGGER.isDebugEnabled()) {
69+
ROOT_LOGGER.debugf("Building identity management configuration.");
70+
}
7271

73-
List<IdentityConfiguration> configurations = new ArrayList<IdentityConfiguration>();
72+
List<IdentityConfiguration> configurations = new ArrayList<IdentityConfiguration>();
7473

75-
if (!this.identityConfigInstance.isUnsatisfied()) {
76-
for (Iterator<IdentityConfiguration> iterator = this.identityConfigInstance.iterator(); iterator.hasNext(); ) {
77-
configurations.add(iterator.next());
74+
if (!this.identityConfigInstance.isUnsatisfied()) {
75+
for (Iterator<IdentityConfiguration> iterator = this.identityConfigInstance.iterator(); iterator.hasNext(); ) {
76+
configurations.add(iterator.next());
77+
}
78+
} else {
79+
configurations.addAll(this.picketLinkExtension.getSecurityConfiguration().getIdentityConfigurations());
7880
}
79-
} else {
80-
configurations.addAll(this.picketLinkExtension.getSecurityConfiguration().getIdentityConfigurations());
81-
}
8281

83-
IdentityConfigurationBuilder builder;
82+
IdentityConfigurationBuilder builder;
8483

85-
if (configurations.isEmpty()) {
86-
if (ROOT_LOGGER.isDebugEnabled()) {
87-
ROOT_LOGGER.debugf("IdentityConfiguration not provided by the application, creating a default IdentityConfigurationBuilder.");
88-
}
84+
if (configurations.isEmpty()) {
85+
if (ROOT_LOGGER.isDebugEnabled()) {
86+
ROOT_LOGGER.debugf("IdentityConfiguration not provided by the application, creating a default IdentityConfigurationBuilder.");
87+
}
8988

90-
builder = new IdentityConfigurationBuilder();
91-
} else {
92-
if (ROOT_LOGGER.isDebugEnabled()) {
93-
ROOT_LOGGER.debugf("Found IdentityConfiguration from the environment. Creating a IdentityConfigurationBuilder with them.");
89+
builder = new IdentityConfigurationBuilder();
90+
} else {
91+
if (ROOT_LOGGER.isDebugEnabled()) {
92+
ROOT_LOGGER.debugf("Found IdentityConfiguration from the environment. Creating a IdentityConfigurationBuilder with them.");
93+
}
94+
95+
builder = new IdentityConfigurationBuilder(configurations);
9496
}
9597

96-
builder = new IdentityConfigurationBuilder(configurations);
97-
}
98+
this.eventBridge.fireEvent(new IdentityConfigurationEvent(builder));
9899

99-
this.eventBridge.fireEvent(new IdentityConfigurationEvent(builder));
100+
if (!builder.isConfigured()) {
101+
configureDefaults(builder);
102+
}
100103

101-
if (!builder.isConfigured()) {
102-
configureDefaults(builder);
104+
this.identityConfiguration = builder.buildAll();
103105
}
104106

105-
this.identityConfiguration = builder.buildAll();
106-
}
107-
108-
/**
109-
* <p>Returns all configurations produced by the application.</p>
110-
*
111-
* @return
112-
*/
113-
List<IdentityConfiguration> getIdentityConfiguration() {
114107
return this.identityConfiguration;
115108
}
116109

0 commit comments

Comments
 (0)