keycloak-uncached
Changes
distribution/modules/build.xml 3(+3 -0)
distribution/modules/pom.xml 5(+5 -0)
distribution/modules/src/main/resources/modules/org/keycloak/keycloak-wildfly-subsystem/main/module.xml 2(+1 -1)
Details
diff --git a/distribution/as7-adapter-zip/assembly.xml b/distribution/as7-adapter-zip/assembly.xml
index 4caee07..f4b56a1 100755
--- a/distribution/as7-adapter-zip/assembly.xml
+++ b/distribution/as7-adapter-zip/assembly.xml
@@ -11,6 +11,7 @@
<directory>${project.build.directory}/unpacked</directory>
<excludes>
<exclude>org/keycloak/keycloak-undertow-adapter/**</exclude>
+ <exclude>org/keycloak/keycloak-wildfly-subsystem/**</exclude>
</excludes>
<outputDirectory>modules</outputDirectory>
</fileSet>
distribution/modules/build.xml 3(+3 -0)
diff --git a/distribution/modules/build.xml b/distribution/modules/build.xml
index 4b273e8..8f3b099 100755
--- a/distribution/modules/build.xml
+++ b/distribution/modules/build.xml
@@ -67,6 +67,9 @@
<maven-resource group="org.keycloak" artifact="keycloak-undertow-adapter"/>
</module-def>
+ <module-def name="org.keycloak.keycloak-wildfly-subsystem">
+ <maven-resource group="org.keycloak" artifact="keycloak-wildfly-subsystem"/>
+ </module-def>
</target>
<target name="clean-target">
distribution/modules/pom.xml 5(+5 -0)
diff --git a/distribution/modules/pom.xml b/distribution/modules/pom.xml
index 35a7436..af567d2 100755
--- a/distribution/modules/pom.xml
+++ b/distribution/modules/pom.xml
@@ -60,6 +60,11 @@
<version>${project.version}</version>
</dependency>
<dependency>
+ <groupId>org.keycloak</groupId>
+ <artifactId>keycloak-wildfly-subsystem</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk16</artifactId>
</dependency>
diff --git a/integration/wildfly-subsystem/src/main/java/org/keycloak/subsystem/extension/KeycloakAdapterConfigDeploymentProcessor.java b/integration/wildfly-subsystem/src/main/java/org/keycloak/subsystem/extension/KeycloakAdapterConfigDeploymentProcessor.java
old mode 100644
new mode 100755
index 0789e23..40b3ec8
--- a/integration/wildfly-subsystem/src/main/java/org/keycloak/subsystem/extension/KeycloakAdapterConfigDeploymentProcessor.java
+++ b/integration/wildfly-subsystem/src/main/java/org/keycloak/subsystem/extension/KeycloakAdapterConfigDeploymentProcessor.java
@@ -25,8 +25,10 @@ import org.jboss.as.server.deployment.DeploymentUnitProcessingException;
import org.jboss.as.server.deployment.DeploymentUnitProcessor;
import org.jboss.as.server.deployment.Phase;
import org.jboss.as.web.common.WarMetaData;
+import org.jboss.logging.Logger;
import org.jboss.metadata.javaee.spec.ParamValueMetaData;
import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.metadata.web.spec.LoginConfigMetaData;
/**
* Pass authentication data (keycloak.json) as a servlet context param so it can be read by the KeycloakServletExtension.
@@ -34,6 +36,8 @@ import org.jboss.metadata.web.jboss.JBossWebMetaData;
* @author Stan Silvert ssilvert@redhat.com (C) 2014 Red Hat Inc.
*/
public class KeycloakAdapterConfigDeploymentProcessor implements DeploymentUnitProcessor {
+ protected Logger log = Logger.getLogger(KeycloakAdapterConfigDeploymentProcessor.class);
+
// This param name is defined again in Keycloak Undertow Integration class
// org.keycloak.adapters.undertow.KeycloakServletExtension. We have this value in
// two places to avoid dependency between Keycloak Subsystem and Keyclaok Undertow Integration.
@@ -49,7 +53,9 @@ public class KeycloakAdapterConfigDeploymentProcessor implements DeploymentUnitP
String deploymentName = deploymentUnit.getName();
KeycloakAdapterConfigService service = KeycloakAdapterConfigService.find(phaseContext.getServiceRegistry());
+ //log.info("********* CHECK KEYCLOAK DEPLOYMENT: " + deploymentName);
if (service.isKeycloakDeployment(deploymentName)) {
+
addKeycloakAuthData(phaseContext, deploymentName, service);
}
}
@@ -59,6 +65,18 @@ public class KeycloakAdapterConfigDeploymentProcessor implements DeploymentUnitP
WarMetaData warMetaData = deploymentUnit.getAttachment(WarMetaData.ATTACHMENT_KEY);
addJSONData(service.getJSON(deploymentName), warMetaData);
+ JBossWebMetaData webMetaData = warMetaData.getMergedJBossWebMetaData();
+ if (webMetaData == null) {
+ webMetaData = new JBossWebMetaData();
+ warMetaData.setMergedJBossWebMetaData(webMetaData);
+ }
+ LoginConfigMetaData loginConfig = webMetaData.getLoginConfig();
+ if (loginConfig == null) {
+ loginConfig = new LoginConfigMetaData();
+ webMetaData.setLoginConfig(loginConfig);
+ }
+ loginConfig.setAuthMethod("KEYCLOAK");
+ loginConfig.setRealmName(service.getRealmName(deploymentName));
}
private void addJSONData(String json, WarMetaData warMetaData) {
diff --git a/integration/wildfly-subsystem/src/main/java/org/keycloak/subsystem/extension/KeycloakAdapterConfigService.java b/integration/wildfly-subsystem/src/main/java/org/keycloak/subsystem/extension/KeycloakAdapterConfigService.java
old mode 100644
new mode 100755
index ffcce76..ad31d60
--- a/integration/wildfly-subsystem/src/main/java/org/keycloak/subsystem/extension/KeycloakAdapterConfigService.java
+++ b/integration/wildfly-subsystem/src/main/java/org/keycloak/subsystem/extension/KeycloakAdapterConfigService.java
@@ -22,6 +22,7 @@ import java.util.Map;
import org.jboss.as.controller.OperationContext;
import org.jboss.dmr.ModelNode;
import org.jboss.dmr.Property;
+import org.jboss.logging.Logger;
import org.jboss.msc.service.Service;
import org.jboss.msc.service.ServiceController;
import org.jboss.msc.service.ServiceName;
@@ -39,6 +40,7 @@ import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.ADD
* @author Stan Silvert ssilvert@redhat.com (C) 2013 Red Hat Inc.
*/
public final class KeycloakAdapterConfigService implements Service<KeycloakAdapterConfigService> {
+ protected Logger log = Logger.getLogger(KeycloakAdapterConfigService.class);
private static final String CREDENTIALS_JSON_NAME = "credentials";
// Right now this is used as a service, but I'm not sure it really needs to be implemented that way.
@@ -161,6 +163,12 @@ public final class KeycloakAdapterConfigService implements Service<KeycloakAdapt
return null;
}
+ public String getRealmName(String deploymentName) {
+ ModelNode deployment = this.deployments.get(deploymentName);
+ return deployment.get(RealmDefinition.TAG_NAME).asString();
+
+ }
+
public String getJSON(String deploymentName) {
ModelNode deployment = this.deployments.get(deploymentName);
String realmName = deployment.get(RealmDefinition.TAG_NAME).asString();
@@ -186,6 +194,8 @@ public final class KeycloakAdapterConfigService implements Service<KeycloakAdapt
}
public boolean isKeycloakDeployment(String deploymentName) {
+ //log.info("********* CHECK KEYCLOAK DEPLOYMENT: deployments.size()" + deployments.size());
+
return this.deployments.containsKey(deploymentName);
}