keycloak-developers

KEYCLOAK-1183 Split subsystem into separate server and adapter

4/29/2015 1:07:12 PM

Details

diff --git a/integration/keycloak-server-subsystem/src/main/resources/schema/wildfly-keycloak-server_1_1.xsd b/integration/keycloak-server-subsystem/src/main/resources/schema/wildfly-keycloak-server_1_1.xsd
index 978dc02..a8dd28e 100755
--- a/integration/keycloak-server-subsystem/src/main/resources/schema/wildfly-keycloak-server_1_1.xsd
+++ b/integration/keycloak-server-subsystem/src/main/resources/schema/wildfly-keycloak-server_1_1.xsd
@@ -14,92 +14,25 @@
         <xs:annotation>
             <xs:documentation>
                 <![CDATA[
-                    The Keycloak subsystem, used to register deployments managed by Keycloak
+                    The Keycloak server subsystem, used to configure the Keycloak server
                 ]]>
             </xs:documentation>
         </xs:annotation>
         <xs:choice minOccurs="0" maxOccurs="unbounded">
-            <xs:element name="realm" maxOccurs="unbounded" minOccurs="0" type="realm-type"/>
-            <xs:element name="secure-deployment" maxOccurs="unbounded" minOccurs="0" type="secure-deployment-type"/>
+            <xs:element name="auth-server" maxOccurs="1" minOccurs="0" type="auth-server-type"/>
         </xs:choice>
     </xs:complexType>
 
-    <xs:complexType name="realm-type">
+    <xs:complexType name="auth-server-type">
         <xs:all>
-            <xs:element name="cors-allowed-headers" type="xs:string" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="client-keystore-password" type="xs:string" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="client-keystore" type="xs:string" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="truststore" type="xs:string" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="truststore-password" type="xs:string" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="enable-cors" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="allow-any-hostname" type="xs:boolean" minOccurs="0" maxOccurs="1" />
-            <xs:element name="client-key-password" type="xs:string" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="connection-pool-size" type="xs:integer" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="cors-max-age" type="xs:integer" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="auth-server-url" type="xs:string" minOccurs="1" maxOccurs="1"/>
-            <xs:element name="expose-token" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="disable-trust-manager" type="xs:boolean" minOccurs="0" maxOccurs="1" />
-            <xs:element name="ssl-required" type="xs:string" minOccurs="0" maxOccurs="1" />
-            <xs:element name="cors-allowed-methods" type="xs:string" minOccurs="1" maxOccurs="1"/>
-            <xs:element name="realm-public-key" type="xs:string" minOccurs="1" maxOccurs="1"/>
-            <xs:element name="auth-server-url-for-backend-requests" type="xs:string" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="always-refresh-token" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="register-node-at-startup" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="register-node-period" type="xs:integer" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="token-store" type="xs:string" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="principal-attribute" type="xs:string" minOccurs="0" maxOccurs="1"/>
+            <xs:element name="web-context" type="xs:string" minOccurs="1" maxOccurs="1"/>
+            <xs:element name="enabled" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
         </xs:all>
         <xs:attribute name="name" type="xs:string" use="required">
             <xs:annotation>
-                <xs:documentation>The name of the realm.</xs:documentation>
+                <xs:documentation>The name of the war archive containing the Keycloak server web application.</xs:documentation>
             </xs:annotation>
         </xs:attribute>
     </xs:complexType>
-    
-    <xs:complexType name="secure-deployment-type">
-        <xs:all>
-            <xs:element name="client-keystore-password" type="xs:string" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="client-keystore" type="xs:string" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="enable-cors" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="allow-any-hostname" type="xs:boolean" minOccurs="0" maxOccurs="1" />
-            <xs:element name="use-resource-role-mappings" type="xs:boolean" minOccurs="0" maxOccurs="1" />
-            <xs:element name="cors-max-age" type="xs:integer" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="auth-server-url" type="xs:string" minOccurs="1" maxOccurs="1"/>
-            <xs:element name="realm" type="xs:string" minOccurs="1" maxOccurs="1"/>
-            <xs:element name="disable-trust-manager" type="xs:boolean" minOccurs="0" maxOccurs="1" />
-            <xs:element name="cors-allowed-methods" type="xs:string" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="bearer-only" type="xs:boolean" minOccurs="0" maxOccurs="1" />
-            <xs:element name="cors-allowed-headers" type="xs:string" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="resource" type="xs:string" minOccurs="0" maxOccurs="1" />
-            <xs:element name="truststore" type="xs:string" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="truststore-password" type="xs:string" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="client-key-password" type="xs:string" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="public-client" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="connection-pool-size" type="xs:integer" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="expose-token" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="ssl-required" type="xs:string" minOccurs="0" maxOccurs="1" />
-            <xs:element name="realm-public-key" type="xs:string" minOccurs="1" maxOccurs="1"/>
-            <xs:element name="credential" type="credential-type" minOccurs="1" maxOccurs="1"/>
-            <xs:element name="auth-server-url-for-backend-requests" type="xs:string" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="always-refresh-token" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="register-node-at-startup" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="register-node-period" type="xs:integer" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="token-store" type="xs:string" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="principal-attribute" type="xs:string" minOccurs="0" maxOccurs="1"/>
-            <xs:element name="enable-basic-auth" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
-        </xs:all>
-        <xs:attribute name="name" type="xs:string" use="required">
-            <xs:annotation>
-                <xs:documentation>The name of the realm.</xs:documentation>
-            </xs:annotation>
-        </xs:attribute>
-    </xs:complexType>
-    
-    <xs:complexType name="credential-type">
-        <xs:simpleContent>
-            <xs:extension base="xs:string">
-                <xs:attribute name="name" type="xs:string" />
-            </xs:extension>
-        </xs:simpleContent>
-    </xs:complexType>
+
 </xs:schema>
diff --git a/integration/keycloak-server-subsystem/src/test/java/org/keycloak/subsystem/server/extension/SubsystemParsingTestCase.java b/integration/keycloak-server-subsystem/src/test/java/org/keycloak/subsystem/server/extension/SubsystemParsingTestCase.java
index 86207df..af741a7 100755
--- a/integration/keycloak-server-subsystem/src/test/java/org/keycloak/subsystem/server/extension/SubsystemParsingTestCase.java
+++ b/integration/keycloak-server-subsystem/src/test/java/org/keycloak/subsystem/server/extension/SubsystemParsingTestCase.java
@@ -43,27 +43,19 @@ public class SubsystemParsingTestCase extends AbstractSubsystemBaseTest {
     @Test
     public void testJson() throws Exception {
         ModelNode node = new ModelNode();
-        node.get("realm").set("demo");
-        node.get("resource").set("customer-portal");
-        node.get("realm-public-key").set("MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCrVrCuTtArbgaZzL1hvh0xtL5mc7o0NqPVnYXkLvgcwiC3BjLGw1tGEGoJaXDuSaRllobm53JBhjx33UNv+5z/UMG4kytBWxheNVKnL6GgqlNabMaFfPLPCF8kAgKnsi79NMo+n6KnSY8YeUmec/p2vjO2NjsSAVcWEQMVhJ31LwIDAQAB");
-        node.get("auth-url").set("http://localhost:8080/auth-server/rest/realms/demo/protocol/openid-connect/login");
-        node.get("code-url").set("http://localhost:8080/auth-server/rest/realms/demo/protocol/openid-connect/access/codes");
-        node.get("ssl-required").set("external");
-        node.get("expose-token").set(true);
-        ModelNode credential = new ModelNode();
-        credential.get("password").set("password");
-        node.get("credentials").set(credential);
+        node.get("enabled").set(true);
+        node.get("web-context").set("auth");
 
         System.out.println("json=" + node.toJSONString(false));
     }
 
     @Override
     protected String getSubsystemXml() throws IOException {
-        return readResource("keycloak-1.0.xml");
+        return readResource("keycloak-server-1.1.xml");
     }
 
     @Override
     protected String getSubsystemXsdPath() throws Exception {
-        return "schema/wildfly-keycloak_1_0.xsd";
+        return "schema/wildfly-keycloak-server_1_1.xsd";
     }
 }
diff --git a/integration/keycloak-server-subsystem/src/test/resources/org/keycloak/subsystem/server/extension/keycloak-server-1.1.xml b/integration/keycloak-server-subsystem/src/test/resources/org/keycloak/subsystem/server/extension/keycloak-server-1.1.xml
new file mode 100644
index 0000000..f05f8d1
--- /dev/null
+++ b/integration/keycloak-server-subsystem/src/test/resources/org/keycloak/subsystem/server/extension/keycloak-server-1.1.xml
@@ -0,0 +1,6 @@
+<subsystem xmlns="urn:jboss:domain:keycloak-server:1.1">
+    <auth-server name="main-auth-server">
+        <enabled>true</enabled>
+        <web-context>auth</web-context>
+    </auth-server>
+</subsystem>
\ No newline at end of file