diff --git a/distribution/adapters/as7-adapter-zip/assembly.xml b/distribution/adapters/as7-adapter/as7-adapter-zip/assembly.xml
similarity index 93%
rename from distribution/adapters/as7-adapter-zip/assembly.xml
rename to distribution/adapters/as7-adapter/as7-adapter-zip/assembly.xml
index 7c141ff108..814a591b83 100755
--- a/distribution/adapters/as7-adapter-zip/assembly.xml
+++ b/distribution/adapters/as7-adapter/as7-adapter-zip/assembly.xml
@@ -1,29 +1,30 @@
-
- war-dist
-
-
- zip
- tar.gz
-
- false
-
-
-
- ${project.build.directory}/unpacked
-
- org/bouncycastle/**
- net/iharder/base64/**
- org/apache/httpcomponents/**
- org/keycloak/keycloak-core/**
- org/keycloak/keycloak-adapter-core/**
- org/keycloak/keycloak-jboss-adapter-core/**
- org/keycloak/keycloak-as7-adapter/**
- org/keycloak/keycloak-as7-subsystem/**
-
-
- **/*.war
-
- modules
-
-
-
+
+ war-dist
+
+
+ zip
+ tar.gz
+
+ false
+
+
+
+ ${project.build.directory}/unpacked
+
+ org/bouncycastle/**
+ net/iharder/base64/**
+ org/apache/httpcomponents/**
+ org/keycloak/keycloak-core/**
+ org/keycloak/keycloak-adapter-core/**
+ org/keycloak/keycloak-jboss-adapter-core/**
+ org/keycloak/keycloak-as7-adapter/**
+ org/keycloak/keycloak-as7-subsystem/**
+ org/keycloak/keycloak-adapter-subsystem/**
+
+
+ **/*.war
+
+ modules
+
+
+
diff --git a/distribution/adapters/as7-adapter-zip/pom.xml b/distribution/adapters/as7-adapter/as7-adapter-zip/pom.xml
similarity index 93%
rename from distribution/adapters/as7-adapter-zip/pom.xml
rename to distribution/adapters/as7-adapter/as7-adapter-zip/pom.xml
index 7a5921d215..7a3c6c57c0 100755
--- a/distribution/adapters/as7-adapter-zip/pom.xml
+++ b/distribution/adapters/as7-adapter/as7-adapter-zip/pom.xml
@@ -1,79 +1,79 @@
-
- 4.0.0
-
- keycloak-parent
- org.keycloak
- 1.3.0.Final-SNAPSHOT
- ../../../pom.xml
-
-
- keycloak-as7-adapter-dist
- pom
- Keycloak AS7 Adapter Distro
-
-
-
-
- org.keycloak
- keycloak-as7-adapter
-
-
- org.keycloak
- keycloak-jboss-modules
- zip
-
-
-
-
-
- org.apache.maven.plugins
- maven-dependency-plugin
-
-
- unpack
- prepare-package
-
- unpack
-
-
-
-
- org.keycloak
- keycloak-jboss-modules
- zip
- ${project.build.directory}/unpacked
-
-
-
-
-
-
-
- maven-assembly-plugin
-
-
- assemble
- package
-
- single
-
-
-
- assembly.xml
-
-
- target
-
-
- target/assembly/work
-
- false
-
-
-
-
-
-
-
-
+
+ 4.0.0
+
+ keycloak-parent
+ org.keycloak
+ 1.3.0.Final-SNAPSHOT
+ ../../../pom.xml
+
+
+ keycloak-as7-adapter-dist
+ pom
+ Keycloak AS7 Adapter Distro
+
+
+
+
+ org.keycloak
+ keycloak-as7-adapter
+
+
+ org.keycloak
+ keycloak-as7-modules
+ zip
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+
+
+ unpack
+ prepare-package
+
+ unpack
+
+
+
+
+ org.keycloak
+ keycloak-as7-modules
+ zip
+ ${project.build.directory}/unpacked
+
+
+
+
+
+
+
+ maven-assembly-plugin
+
+
+ assemble
+ package
+
+ single
+
+
+
+ assembly.xml
+
+
+ target
+
+
+ target/assembly/work
+
+ false
+
+
+
+
+
+
+
+
diff --git a/distribution/adapters/as7-adapter/as7-modules/assembly.xml b/distribution/adapters/as7-adapter/as7-modules/assembly.xml
new file mode 100755
index 0000000000..4a34435ac4
--- /dev/null
+++ b/distribution/adapters/as7-adapter/as7-modules/assembly.xml
@@ -0,0 +1,22 @@
+
+ dist
+
+
+ zip
+
+ false
+
+
+
+ ../../
+
+ License.html
+
+
+
+
+ ${project.build.directory}/modules
+
+
+
+
diff --git a/distribution/adapters/as7-adapter/as7-modules/build.xml b/distribution/adapters/as7-adapter/as7-modules/build.xml
new file mode 100755
index 0000000000..d4b4bebd20
--- /dev/null
+++ b/distribution/adapters/as7-adapter/as7-modules/build.xml
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/distribution/adapters/as7-adapter/as7-modules/lib.xml b/distribution/adapters/as7-adapter/as7-modules/lib.xml
new file mode 100755
index 0000000000..3d9438a4a4
--- /dev/null
+++ b/distribution/adapters/as7-adapter/as7-modules/lib.xml
@@ -0,0 +1,282 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ";
+ project.setProperty("current.maven.root", root);
+ ]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ";
+ if(path.indexOf('${') != -1) {
+ throw "Module resource root not found, make sure it is listed in build/pom.xml" + path;
+ }
+ if(attributes.get("jandex") == "true" ) {
+ root = root + "\n\t";
+ }
+ project.setProperty("current.resource.root", root);
+ ]]>
+
+
+
diff --git a/distribution/adapters/as7-adapter/as7-modules/pom.xml b/distribution/adapters/as7-adapter/as7-modules/pom.xml
new file mode 100755
index 0000000000..cfa6302945
--- /dev/null
+++ b/distribution/adapters/as7-adapter/as7-modules/pom.xml
@@ -0,0 +1,172 @@
+
+
+
+ 4.0.0
+
+
+ keycloak-parent
+ org.keycloak
+ 1.3.0.Final-SNAPSHOT
+ ../../../../pom.xml
+
+
+ keycloak-as7-modules
+
+ Keycloak JBoss AS 7 Modules
+ pom
+
+
+ org.keycloak
+ keycloak-core
+
+
+ org.keycloak
+ keycloak-adapter-core
+
+
+ org.keycloak
+ keycloak-jboss-adapter-core
+
+
+ org.keycloak
+ keycloak-as7-adapter
+
+
+ org.keycloak
+ keycloak-tomcat-core-adapter
+
+
+ org.keycloak
+ keycloak-as7-subsystem
+
+
+ org.apache.httpcomponents
+ httpmime
+
+
+ org.apache.httpcomponents
+ httpcore
+
+
+ net.iharder
+ base64
+
+
+ org.bouncycastle
+ bcprov-jdk15on
+ ${bouncycastle.crypto.version}
+
+
+ org.bouncycastle
+ bcpkix-jdk15on
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+ false
+
+
+ build-dist
+
+ run
+
+ compile
+
+
+
+
+
+
+
+
+
+
+
+ org.jboss
+ jandex
+ 1.0.3.Final
+
+
+ ant-contrib
+ ant-contrib
+ 1.0b3
+
+
+ ant
+ ant
+
+
+
+
+ org.apache.ant
+ ant-apache-bsf
+ 1.9.3
+
+
+ org.apache.bsf
+ bsf-api
+ 3.1
+
+
+ rhino
+ js
+ 1.7R2
+
+
+
+
+ maven-assembly-plugin
+
+
+ assemble
+ package
+
+ single
+
+
+
+ assembly.xml
+
+
+ target
+
+
+ target/assembly/work
+
+ false
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+
+
+ copy-resources
+
+ validate
+
+ copy-resources
+
+
+ ${project.build.directory}/modules/org/keycloak/keycloak-adapter-subsystem
+
+
+ src/main/resources/modules/org/keycloak/keycloak-adapter-subsystem
+ true
+
+
+
+
+
+
+
+
+
diff --git a/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/net/iharder/base64/main/module.xml b/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/net/iharder/base64/main/module.xml
new file mode 100755
index 0000000000..c99b96879b
--- /dev/null
+++ b/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/net/iharder/base64/main/module.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/apache/httpcomponents/4.3/module.xml b/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/apache/httpcomponents/4.3/module.xml
new file mode 100644
index 0000000000..a3e65f8dd0
--- /dev/null
+++ b/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/apache/httpcomponents/4.3/module.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/bouncycastle/main/module.xml b/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/bouncycastle/main/module.xml
new file mode 100644
index 0000000000..d8fcf474cb
--- /dev/null
+++ b/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/bouncycastle/main/module.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-core/main/module.xml b/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-core/main/module.xml
new file mode 100755
index 0000000000..1be1486fe2
--- /dev/null
+++ b/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-core/main/module.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-subsystem/main/module.xml b/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-subsystem/main/module.xml
new file mode 100755
index 0000000000..06a24fe02d
--- /dev/null
+++ b/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-adapter-subsystem/main/module.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-as7-adapter/main/module.xml b/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-as7-adapter/main/module.xml
new file mode 100755
index 0000000000..b5df10afb2
--- /dev/null
+++ b/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-as7-adapter/main/module.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-as7-subsystem/main/module.xml b/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-as7-subsystem/main/module.xml
new file mode 100755
index 0000000000..50f423478d
--- /dev/null
+++ b/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-as7-subsystem/main/module.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-core/main/module.xml b/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-core/main/module.xml
new file mode 100755
index 0000000000..545f16847c
--- /dev/null
+++ b/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-core/main/module.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml b/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml
new file mode 100755
index 0000000000..beac07bac7
--- /dev/null
+++ b/distribution/adapters/as7-adapter/as7-modules/src/main/resources/modules/org/keycloak/keycloak-jboss-adapter-core/main/module.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/distribution/adapters/as7-adapter/pom.xml b/distribution/adapters/as7-adapter/pom.xml
new file mode 100644
index 0000000000..b7759d7af4
--- /dev/null
+++ b/distribution/adapters/as7-adapter/pom.xml
@@ -0,0 +1,20 @@
+
+
+ keycloak-parent
+ org.keycloak
+ 1.3.0.Final-SNAPSHOT
+ ../../../pom.xml
+
+ Keycloak JBoss AS 7 Adapter
+
+ 4.0.0
+
+ keycloak-as7-adapter-dist-pom
+ pom
+
+
+ as7-modules
+ as7-adapter-zip
+
+
diff --git a/distribution/adapters/pom.xml b/distribution/adapters/pom.xml
index 8c13893c61..376de00bfd 100755
--- a/distribution/adapters/pom.xml
+++ b/distribution/adapters/pom.xml
@@ -27,7 +27,7 @@
- as7-adapter-zip
+ as7-adapter
eap6-adapter-zip
jetty81-adapter-zip
jetty91-adapter-zip
diff --git a/integration/as7-eap6/adapter/pom.xml b/integration/as7-eap6/as7-adapter/pom.xml
similarity index 97%
rename from integration/as7-eap6/adapter/pom.xml
rename to integration/as7-eap6/as7-adapter/pom.xml
index e84c60f629..fcba0a0a90 100755
--- a/integration/as7-eap6/adapter/pom.xml
+++ b/integration/as7-eap6/as7-adapter/pom.xml
@@ -1,113 +1,113 @@
-
-
-
- keycloak-parent
- org.keycloak
- 1.3.0.Final-SNAPSHOT
- ../../../pom.xml
-
- 4.0.0
-
- keycloak-as7-adapter
- Keycloak AS7 Integration
-
-
-
-
- org.keycloak
- keycloak-core
-
-
- org.keycloak
- keycloak-adapter-core
-
-
- org.keycloak
- keycloak-jboss-adapter-core
-
-
- org.apache.httpcomponents
- httpclient
-
-
- net.iharder
- base64
-
-
- org.bouncycastle
- bcprov-jdk15on
-
-
- org.codehaus.jackson
- jackson-core-asl
-
-
- org.codehaus.jackson
- jackson-mapper-asl
-
-
- org.codehaus.jackson
- jackson-xc
-
-
- org.jboss.spec.javax.servlet
- jboss-servlet-api_3.0_spec
- provided
-
-
- org.jboss.logging
- jboss-logging
- ${jboss.logging.version}
- provided
-
-
- org.jboss.web
- jbossweb
- 7.0.17.Final
- provided
-
-
- org.jboss.as
- jboss-as-web
- 7.1.2.Final
- provided
-
-
- org.keycloak
- keycloak-tomcat-core-adapter
-
-
- org.apache.tomcat
- tomcat-servlet-api
-
-
- org.apache.tomcat
- tomcat-catalina
-
-
- org.apache.tomcat
- catalina
-
-
-
-
- junit
- junit
- test
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
- ${maven.compiler.source}
- ${maven.compiler.target}
-
-
-
-
-
-
+
+
+
+ keycloak-parent
+ org.keycloak
+ 1.3.0.Final-SNAPSHOT
+ ../../../pom.xml
+
+ 4.0.0
+
+ keycloak-as7-adapter
+ Keycloak AS7 Integration
+
+
+
+
+ org.keycloak
+ keycloak-core
+
+
+ org.keycloak
+ keycloak-adapter-core
+
+
+ org.keycloak
+ keycloak-jboss-adapter-core
+
+
+ org.apache.httpcomponents
+ httpclient
+
+
+ net.iharder
+ base64
+
+
+ org.bouncycastle
+ bcprov-jdk15on
+
+
+ org.codehaus.jackson
+ jackson-core-asl
+
+
+ org.codehaus.jackson
+ jackson-mapper-asl
+
+
+ org.codehaus.jackson
+ jackson-xc
+
+
+ org.jboss.spec.javax.servlet
+ jboss-servlet-api_3.0_spec
+ provided
+
+
+ org.jboss.logging
+ jboss-logging
+ ${jboss.logging.version}
+ provided
+
+
+ org.jboss.web
+ jbossweb
+ 7.0.17.Final
+ provided
+
+
+ org.jboss.as
+ jboss-as-web
+ 7.1.2.Final
+ provided
+
+
+ org.keycloak
+ keycloak-tomcat-core-adapter
+
+
+ org.apache.tomcat
+ tomcat-servlet-api
+
+
+ org.apache.tomcat
+ tomcat-catalina
+
+
+ org.apache.tomcat
+ catalina
+
+
+
+
+ junit
+ junit
+ test
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ ${maven.compiler.source}
+ ${maven.compiler.target}
+
+
+
+
+
+
diff --git a/integration/as7-eap6/adapter/src/main/java/org/keycloak/adapters/jbossweb/JBossWebPrincipalFactory.java b/integration/as7-eap6/as7-adapter/src/main/java/org/keycloak/adapters/jbossweb/JBossWebPrincipalFactory.java
similarity index 97%
rename from integration/as7-eap6/adapter/src/main/java/org/keycloak/adapters/jbossweb/JBossWebPrincipalFactory.java
rename to integration/as7-eap6/as7-adapter/src/main/java/org/keycloak/adapters/jbossweb/JBossWebPrincipalFactory.java
index 1b01b75285..8bc50c92e9 100755
--- a/integration/as7-eap6/adapter/src/main/java/org/keycloak/adapters/jbossweb/JBossWebPrincipalFactory.java
+++ b/integration/as7-eap6/as7-adapter/src/main/java/org/keycloak/adapters/jbossweb/JBossWebPrincipalFactory.java
@@ -1,174 +1,174 @@
-package org.keycloak.adapters.jbossweb;
-
-import org.apache.catalina.Realm;
-import org.apache.catalina.realm.GenericPrincipal;
-import org.jboss.as.web.security.JBossGenericPrincipal;
-import org.jboss.security.NestableGroup;
-import org.jboss.security.SecurityConstants;
-import org.jboss.security.SecurityContext;
-import org.jboss.security.SecurityContextAssociation;
-import org.jboss.security.SimpleGroup;
-import org.jboss.security.SimplePrincipal;
-import org.keycloak.KeycloakSecurityContext;
-import org.keycloak.adapters.KeycloakAccount;
-import org.keycloak.adapters.tomcat.GenericPrincipalFactory;
-
-import javax.security.auth.Subject;
-import java.lang.reflect.Constructor;
-import java.security.Principal;
-import java.security.acl.Group;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-/**
- * @author Bill Burke
- * @version $Revision: 1 $
- */
-public class JBossWebPrincipalFactory extends GenericPrincipalFactory {
-
- private static Constructor jbossWebPrincipalConstructor = findJBossGenericPrincipalConstructor();
-
- @Override
- protected GenericPrincipal createPrincipal(Principal userPrincipal, List roles) {
- return null;
- }
-
- @Override
- public GenericPrincipal createPrincipal(Realm realm, final Principal identity, final Set roleSet, final KeycloakSecurityContext securityContext) {
- KeycloakAccount account = new KeycloakAccount() {
- @Override
- public Principal getPrincipal() {
- return identity;
- }
-
- @Override
- public Set getRoles() {
- return roleSet;
- }
-
- @Override
- public KeycloakSecurityContext getKeycloakSecurityContext() {
- return securityContext;
- }
- };
- Subject subject = new Subject();
- Set principals = subject.getPrincipals();
- principals.add(identity);
- Group[] roleSets = getRoleSets(roleSet);
- for (int g = 0; g < roleSets.length; g++) {
- Group group = roleSets[g];
- String name = group.getName();
- Group subjectGroup = createGroup(name, principals);
- if (subjectGroup instanceof NestableGroup) {
- /* A NestableGroup only allows Groups to be added to it so we
- need to add a SimpleGroup to subjectRoles to contain the roles
- */
- SimpleGroup tmp = new SimpleGroup("Roles");
- subjectGroup.addMember(tmp);
- subjectGroup = tmp;
- }
- // Copy the group members to the Subject group
- Enumeration extends Principal> members = group.members();
- while (members.hasMoreElements()) {
- Principal role = (Principal) members.nextElement();
- subjectGroup.addMember(role);
- }
- }
- // add the CallerPrincipal group if none has been added in getRoleSets
- Group callerGroup = new SimpleGroup(SecurityConstants.CALLER_PRINCIPAL_GROUP);
- callerGroup.addMember(identity);
- principals.add(callerGroup);
- SecurityContext sc = SecurityContextAssociation.getSecurityContext();
- Principal userPrincipal = getPrincipal(subject);
- sc.getUtil().createSubjectInfo(userPrincipal, account, subject);
- List rolesAsStringList = new ArrayList();
- rolesAsStringList.addAll(roleSet);
-
- try {
- return (GenericPrincipal) jbossWebPrincipalConstructor.newInstance(realm, userPrincipal.getName(), null, rolesAsStringList, userPrincipal, null, account, null, subject);
- } catch (Throwable t) {
- throw new RuntimeException("Failed to create JBossGenericPrincipal", t);
- }
- }
-
- /**
- * Get the Principal given the authenticated Subject. Currently the first subject that is not of type {@code Group} is
- * considered or the single subject inside the CallerPrincipal group.
- *
- * @param subject
- * @return the authenticated subject
- */
- protected Principal getPrincipal(Subject subject) {
- Principal principal = null;
- Principal callerPrincipal = null;
- if (subject != null) {
- Set principals = subject.getPrincipals();
- if (principals != null && !principals.isEmpty()) {
- for (Principal p : principals) {
- if (!(p instanceof Group) && principal == null) {
- principal = p;
- }
- if (p instanceof Group) {
- Group g = Group.class.cast(p);
- if (g.getName().equals(SecurityConstants.CALLER_PRINCIPAL_GROUP) && callerPrincipal == null) {
- Enumeration extends Principal> e = g.members();
- if (e.hasMoreElements())
- callerPrincipal = e.nextElement();
- }
- }
- }
- }
- }
- return callerPrincipal == null ? principal : callerPrincipal;
- }
-
- protected Group createGroup(String name, Set principals) {
- Group roles = null;
- Iterator iter = principals.iterator();
- while (iter.hasNext()) {
- Object next = iter.next();
- if ((next instanceof Group) == false)
- continue;
- Group grp = (Group) next;
- if (grp.getName().equals(name)) {
- roles = grp;
- break;
- }
- }
- // If we did not find a group create one
- if (roles == null) {
- roles = new SimpleGroup(name);
- principals.add(roles);
- }
- return roles;
- }
-
- protected Group[] getRoleSets(Collection roleSet) {
- SimpleGroup roles = new SimpleGroup("Roles");
- Group[] roleSets = {roles};
- for (String role : roleSet) {
- roles.addMember(new SimplePrincipal(role));
- }
- return roleSets;
- }
-
- static Constructor findJBossGenericPrincipalConstructor() {
- for (Constructor> c : JBossGenericPrincipal.class.getConstructors()) {
- if (c.getParameterTypes().length == 9 &&
- c.getParameterTypes()[0].equals(Realm.class) &&
- c.getParameterTypes()[1].equals(String.class) &&
- c.getParameterTypes()[3].equals(List.class) &&
- c.getParameterTypes()[4].equals(Principal.class) &&
- c.getParameterTypes()[6].equals(Object.class) &&
- c.getParameterTypes()[8].equals(Subject.class)) {
- return c;
- }
- }
- return null;
- }
-
-}
+package org.keycloak.adapters.jbossweb;
+
+import org.apache.catalina.Realm;
+import org.apache.catalina.realm.GenericPrincipal;
+import org.jboss.as.web.security.JBossGenericPrincipal;
+import org.jboss.security.NestableGroup;
+import org.jboss.security.SecurityConstants;
+import org.jboss.security.SecurityContext;
+import org.jboss.security.SecurityContextAssociation;
+import org.jboss.security.SimpleGroup;
+import org.jboss.security.SimplePrincipal;
+import org.keycloak.KeycloakSecurityContext;
+import org.keycloak.adapters.KeycloakAccount;
+import org.keycloak.adapters.tomcat.GenericPrincipalFactory;
+
+import javax.security.auth.Subject;
+import java.lang.reflect.Constructor;
+import java.security.Principal;
+import java.security.acl.Group;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Enumeration;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * @author Bill Burke
+ * @version $Revision: 1 $
+ */
+public class JBossWebPrincipalFactory extends GenericPrincipalFactory {
+
+ private static Constructor jbossWebPrincipalConstructor = findJBossGenericPrincipalConstructor();
+
+ @Override
+ protected GenericPrincipal createPrincipal(Principal userPrincipal, List roles) {
+ return null;
+ }
+
+ @Override
+ public GenericPrincipal createPrincipal(Realm realm, final Principal identity, final Set roleSet, final KeycloakSecurityContext securityContext) {
+ KeycloakAccount account = new KeycloakAccount() {
+ @Override
+ public Principal getPrincipal() {
+ return identity;
+ }
+
+ @Override
+ public Set getRoles() {
+ return roleSet;
+ }
+
+ @Override
+ public KeycloakSecurityContext getKeycloakSecurityContext() {
+ return securityContext;
+ }
+ };
+ Subject subject = new Subject();
+ Set principals = subject.getPrincipals();
+ principals.add(identity);
+ Group[] roleSets = getRoleSets(roleSet);
+ for (int g = 0; g < roleSets.length; g++) {
+ Group group = roleSets[g];
+ String name = group.getName();
+ Group subjectGroup = createGroup(name, principals);
+ if (subjectGroup instanceof NestableGroup) {
+ /* A NestableGroup only allows Groups to be added to it so we
+ need to add a SimpleGroup to subjectRoles to contain the roles
+ */
+ SimpleGroup tmp = new SimpleGroup("Roles");
+ subjectGroup.addMember(tmp);
+ subjectGroup = tmp;
+ }
+ // Copy the group members to the Subject group
+ Enumeration extends Principal> members = group.members();
+ while (members.hasMoreElements()) {
+ Principal role = (Principal) members.nextElement();
+ subjectGroup.addMember(role);
+ }
+ }
+ // add the CallerPrincipal group if none has been added in getRoleSets
+ Group callerGroup = new SimpleGroup(SecurityConstants.CALLER_PRINCIPAL_GROUP);
+ callerGroup.addMember(identity);
+ principals.add(callerGroup);
+ SecurityContext sc = SecurityContextAssociation.getSecurityContext();
+ Principal userPrincipal = getPrincipal(subject);
+ sc.getUtil().createSubjectInfo(userPrincipal, account, subject);
+ List rolesAsStringList = new ArrayList();
+ rolesAsStringList.addAll(roleSet);
+
+ try {
+ return (GenericPrincipal) jbossWebPrincipalConstructor.newInstance(realm, userPrincipal.getName(), null, rolesAsStringList, userPrincipal, null, account, null, subject);
+ } catch (Throwable t) {
+ throw new RuntimeException("Failed to create JBossGenericPrincipal", t);
+ }
+ }
+
+ /**
+ * Get the Principal given the authenticated Subject. Currently the first subject that is not of type {@code Group} is
+ * considered or the single subject inside the CallerPrincipal group.
+ *
+ * @param subject
+ * @return the authenticated subject
+ */
+ protected Principal getPrincipal(Subject subject) {
+ Principal principal = null;
+ Principal callerPrincipal = null;
+ if (subject != null) {
+ Set principals = subject.getPrincipals();
+ if (principals != null && !principals.isEmpty()) {
+ for (Principal p : principals) {
+ if (!(p instanceof Group) && principal == null) {
+ principal = p;
+ }
+ if (p instanceof Group) {
+ Group g = Group.class.cast(p);
+ if (g.getName().equals(SecurityConstants.CALLER_PRINCIPAL_GROUP) && callerPrincipal == null) {
+ Enumeration extends Principal> e = g.members();
+ if (e.hasMoreElements())
+ callerPrincipal = e.nextElement();
+ }
+ }
+ }
+ }
+ }
+ return callerPrincipal == null ? principal : callerPrincipal;
+ }
+
+ protected Group createGroup(String name, Set principals) {
+ Group roles = null;
+ Iterator iter = principals.iterator();
+ while (iter.hasNext()) {
+ Object next = iter.next();
+ if ((next instanceof Group) == false)
+ continue;
+ Group grp = (Group) next;
+ if (grp.getName().equals(name)) {
+ roles = grp;
+ break;
+ }
+ }
+ // If we did not find a group create one
+ if (roles == null) {
+ roles = new SimpleGroup(name);
+ principals.add(roles);
+ }
+ return roles;
+ }
+
+ protected Group[] getRoleSets(Collection roleSet) {
+ SimpleGroup roles = new SimpleGroup("Roles");
+ Group[] roleSets = {roles};
+ for (String role : roleSet) {
+ roles.addMember(new SimplePrincipal(role));
+ }
+ return roleSets;
+ }
+
+ static Constructor findJBossGenericPrincipalConstructor() {
+ for (Constructor> c : JBossGenericPrincipal.class.getConstructors()) {
+ if (c.getParameterTypes().length == 9 &&
+ c.getParameterTypes()[0].equals(Realm.class) &&
+ c.getParameterTypes()[1].equals(String.class) &&
+ c.getParameterTypes()[3].equals(List.class) &&
+ c.getParameterTypes()[4].equals(Principal.class) &&
+ c.getParameterTypes()[6].equals(Object.class) &&
+ c.getParameterTypes()[8].equals(Subject.class)) {
+ return c;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/integration/as7-eap6/adapter/src/main/java/org/keycloak/adapters/jbossweb/KeycloakAuthenticatorValve.java b/integration/as7-eap6/as7-adapter/src/main/java/org/keycloak/adapters/jbossweb/KeycloakAuthenticatorValve.java
similarity index 97%
rename from integration/as7-eap6/adapter/src/main/java/org/keycloak/adapters/jbossweb/KeycloakAuthenticatorValve.java
rename to integration/as7-eap6/as7-adapter/src/main/java/org/keycloak/adapters/jbossweb/KeycloakAuthenticatorValve.java
index 91cbb8720f..583d370c57 100755
--- a/integration/as7-eap6/adapter/src/main/java/org/keycloak/adapters/jbossweb/KeycloakAuthenticatorValve.java
+++ b/integration/as7-eap6/as7-adapter/src/main/java/org/keycloak/adapters/jbossweb/KeycloakAuthenticatorValve.java
@@ -1,55 +1,55 @@
-package org.keycloak.adapters.jbossweb;
-
-import org.apache.catalina.LifecycleException;
-import org.apache.catalina.connector.Request;
-import org.apache.catalina.connector.Response;
-import org.apache.catalina.core.StandardContext;
-import org.apache.catalina.deploy.LoginConfig;
-import org.apache.catalina.realm.GenericPrincipal;
-import org.keycloak.adapters.tomcat.AbstractKeycloakAuthenticatorValve;
-import org.keycloak.adapters.tomcat.GenericPrincipalFactory;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.security.Principal;
-import java.util.List;
-
-/**
- * Keycloak authentication valve
- *
- * @author Bill Burke
- * @version $Revision: 1 $
- */
-public class KeycloakAuthenticatorValve extends AbstractKeycloakAuthenticatorValve {
- public boolean authenticate(Request request, HttpServletResponse response, LoginConfig config) throws java.io.IOException {
- return authenticateInternal(request, response, config);
- }
-
- @Override
- protected boolean forwardToErrorPageInternal(Request request, HttpServletResponse response, Object loginConfig) throws IOException {
- if (loginConfig == null) return false;
- LoginConfig config = (LoginConfig)loginConfig;
- if (config.getErrorPage() == null) return false;
- forwardToErrorPage(request, (Response)response, config);
- return true;
- }
-
-
- @Override
- public void start() throws LifecycleException {
- StandardContext standardContext = (StandardContext) context;
- standardContext.addLifecycleListener(this);
- super.start();
- }
-
-
- public void logout(Request request) {
- logoutInternal(request);
- }
-
- @Override
- protected GenericPrincipalFactory createPrincipalFactory() {
- return new JBossWebPrincipalFactory();
- }
-}
+package org.keycloak.adapters.jbossweb;
+
+import org.apache.catalina.LifecycleException;
+import org.apache.catalina.connector.Request;
+import org.apache.catalina.connector.Response;
+import org.apache.catalina.core.StandardContext;
+import org.apache.catalina.deploy.LoginConfig;
+import org.apache.catalina.realm.GenericPrincipal;
+import org.keycloak.adapters.tomcat.AbstractKeycloakAuthenticatorValve;
+import org.keycloak.adapters.tomcat.GenericPrincipalFactory;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.security.Principal;
+import java.util.List;
+
+/**
+ * Keycloak authentication valve
+ *
+ * @author Bill Burke
+ * @version $Revision: 1 $
+ */
+public class KeycloakAuthenticatorValve extends AbstractKeycloakAuthenticatorValve {
+ public boolean authenticate(Request request, HttpServletResponse response, LoginConfig config) throws java.io.IOException {
+ return authenticateInternal(request, response, config);
+ }
+
+ @Override
+ protected boolean forwardToErrorPageInternal(Request request, HttpServletResponse response, Object loginConfig) throws IOException {
+ if (loginConfig == null) return false;
+ LoginConfig config = (LoginConfig)loginConfig;
+ if (config.getErrorPage() == null) return false;
+ forwardToErrorPage(request, (Response)response, config);
+ return true;
+ }
+
+
+ @Override
+ public void start() throws LifecycleException {
+ StandardContext standardContext = (StandardContext) context;
+ standardContext.addLifecycleListener(this);
+ super.start();
+ }
+
+
+ public void logout(Request request) {
+ logoutInternal(request);
+ }
+
+ @Override
+ protected GenericPrincipalFactory createPrincipalFactory() {
+ return new JBossWebPrincipalFactory();
+ }
+}
diff --git a/integration/as7-eap6/adapter/src/test/java/org/keycloak/adapters/jbossweb/JBossWebPrincipalFactoryTest.java b/integration/as7-eap6/as7-adapter/src/test/java/org/keycloak/adapters/jbossweb/JBossWebPrincipalFactoryTest.java
similarity index 100%
rename from integration/as7-eap6/adapter/src/test/java/org/keycloak/adapters/jbossweb/JBossWebPrincipalFactoryTest.java
rename to integration/as7-eap6/as7-adapter/src/test/java/org/keycloak/adapters/jbossweb/JBossWebPrincipalFactoryTest.java
diff --git a/integration/as7-subsystem/pom.xml b/integration/as7-eap6/as7-subsystem/pom.xml
similarity index 98%
rename from integration/as7-subsystem/pom.xml
rename to integration/as7-eap6/as7-subsystem/pom.xml
index 2579b8b7e5..a186da3043 100755
--- a/integration/as7-subsystem/pom.xml
+++ b/integration/as7-eap6/as7-subsystem/pom.xml
@@ -21,7 +21,7 @@
org.keycloak
keycloak-parent
1.3.0.Final-SNAPSHOT
- ../../pom.xml
+ ../../../pom.xml
keycloak-as7-subsystem
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/CredentialAddHandler.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/CredentialAddHandler.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/CredentialAddHandler.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/CredentialAddHandler.java
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/CredentialDefinition.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/CredentialDefinition.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/CredentialDefinition.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/CredentialDefinition.java
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/CredentialReadWriteAttributeHandler.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/CredentialReadWriteAttributeHandler.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/CredentialReadWriteAttributeHandler.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/CredentialReadWriteAttributeHandler.java
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/CredentialRemoveHandler.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/CredentialRemoveHandler.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/CredentialRemoveHandler.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/CredentialRemoveHandler.java
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakAdapterConfigDeploymentProcessor.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakAdapterConfigDeploymentProcessor.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakAdapterConfigDeploymentProcessor.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakAdapterConfigDeploymentProcessor.java
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakAdapterConfigService.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakAdapterConfigService.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakAdapterConfigService.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakAdapterConfigService.java
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakDependencyProcessor.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakDependencyProcessor.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakDependencyProcessor.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakDependencyProcessor.java
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakDependencyProcessorAS7.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakDependencyProcessorAS7.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakDependencyProcessorAS7.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakDependencyProcessorAS7.java
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakExtension.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakExtension.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakExtension.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakExtension.java
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakSubsystemAdd.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakSubsystemAdd.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakSubsystemAdd.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakSubsystemAdd.java
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakSubsystemDefinition.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakSubsystemDefinition.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakSubsystemDefinition.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakSubsystemDefinition.java
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakSubsystemParser.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakSubsystemParser.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakSubsystemParser.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/KeycloakSubsystemParser.java
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/RealmAddHandler.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/RealmAddHandler.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/RealmAddHandler.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/RealmAddHandler.java
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/RealmDefinition.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/RealmDefinition.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/RealmDefinition.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/RealmDefinition.java
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/RealmRemoveHandler.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/RealmRemoveHandler.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/RealmRemoveHandler.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/RealmRemoveHandler.java
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/RealmWriteAttributeHandler.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/RealmWriteAttributeHandler.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/RealmWriteAttributeHandler.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/RealmWriteAttributeHandler.java
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/SecureDeploymentAddHandler.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/SecureDeploymentAddHandler.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/SecureDeploymentAddHandler.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/SecureDeploymentAddHandler.java
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/SecureDeploymentDefinition.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/SecureDeploymentDefinition.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/SecureDeploymentDefinition.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/SecureDeploymentDefinition.java
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/SecureDeploymentRemoveHandler.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/SecureDeploymentRemoveHandler.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/SecureDeploymentRemoveHandler.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/SecureDeploymentRemoveHandler.java
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/SecureDeploymentWriteAttributeHandler.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/SecureDeploymentWriteAttributeHandler.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/SecureDeploymentWriteAttributeHandler.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/SecureDeploymentWriteAttributeHandler.java
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/SharedAttributeDefinitons.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/SharedAttributeDefinitons.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/SharedAttributeDefinitons.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/SharedAttributeDefinitons.java
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/Util.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/Util.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/Util.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/Util.java
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/logging/KeycloakLogger.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/logging/KeycloakLogger.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/logging/KeycloakLogger.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/logging/KeycloakLogger.java
diff --git a/integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/logging/KeycloakMessages.java b/integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/logging/KeycloakMessages.java
similarity index 100%
rename from integration/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/logging/KeycloakMessages.java
rename to integration/as7-eap6/as7-subsystem/src/main/java/org/keycloak/subsystem/as7/logging/KeycloakMessages.java
diff --git a/integration/as7-subsystem/src/main/resources/META-INF/services/org.jboss.as.controller.Extension b/integration/as7-eap6/as7-subsystem/src/main/resources/META-INF/services/org.jboss.as.controller.Extension
similarity index 100%
rename from integration/as7-subsystem/src/main/resources/META-INF/services/org.jboss.as.controller.Extension
rename to integration/as7-eap6/as7-subsystem/src/main/resources/META-INF/services/org.jboss.as.controller.Extension
diff --git a/integration/as7-subsystem/src/main/resources/org/keycloak/subsystem/as7/LocalDescriptions.properties b/integration/as7-eap6/as7-subsystem/src/main/resources/org/keycloak/subsystem/as7/LocalDescriptions.properties
similarity index 100%
rename from integration/as7-subsystem/src/main/resources/org/keycloak/subsystem/as7/LocalDescriptions.properties
rename to integration/as7-eap6/as7-subsystem/src/main/resources/org/keycloak/subsystem/as7/LocalDescriptions.properties
diff --git a/integration/as7-subsystem/src/main/resources/schema/keycloak_1_1.xsd b/integration/as7-eap6/as7-subsystem/src/main/resources/schema/keycloak_1_1.xsd
similarity index 100%
rename from integration/as7-subsystem/src/main/resources/schema/keycloak_1_1.xsd
rename to integration/as7-eap6/as7-subsystem/src/main/resources/schema/keycloak_1_1.xsd
diff --git a/integration/as7-subsystem/src/test/java/org/keycloak/subsystem/as7/RealmDefinitionTestCase.java b/integration/as7-eap6/as7-subsystem/src/test/java/org/keycloak/subsystem/as7/RealmDefinitionTestCase.java
similarity index 100%
rename from integration/as7-subsystem/src/test/java/org/keycloak/subsystem/as7/RealmDefinitionTestCase.java
rename to integration/as7-eap6/as7-subsystem/src/test/java/org/keycloak/subsystem/as7/RealmDefinitionTestCase.java
diff --git a/integration/as7-eap6/pom.xml b/integration/as7-eap6/pom.xml
new file mode 100644
index 0000000000..50013d94f6
--- /dev/null
+++ b/integration/as7-eap6/pom.xml
@@ -0,0 +1,20 @@
+
+
+ keycloak-parent
+ org.keycloak
+ 1.3.0.Final-SNAPSHOT
+ ../../pom.xml
+
+ Keycloak AS7 / EAP6 Integration
+
+ 4.0.0
+
+ keycloak-as7-integration-pom
+ pom
+
+
+ as7-adapter
+ as7-subsystem
+
+
\ No newline at end of file
diff --git a/integration/pom.xml b/integration/pom.xml
index 0b248bec60..0a0f4a5b73 100755
--- a/integration/pom.xml
+++ b/integration/pom.xml
@@ -19,11 +19,10 @@
servlet-oauth-client
jboss-adapter-core
tomcat
- as7-eap6/adapter
+ as7-eap6
jetty
undertow
wildfly
- as7-subsystem
js
installed
admin-client
diff --git a/pom.xml b/pom.xml
index 5ba74c69bf..b83d362037 100755
--- a/pom.xml
+++ b/pom.xml
@@ -1079,6 +1079,12 @@
${project.version}
zip
+
+ org.keycloak
+ keycloak-as7-modules
+ ${project.version}
+ zip
+
org.keycloak
keycloak-wf8-modules