From 09f8d1457244e25fbdca56d65226a6550c19f07a Mon Sep 17 00:00:00 2001 From: Pavel Drozd Date: Wed, 27 Jan 2016 10:01:35 +0100 Subject: [PATCH] KEYCLOAK-2401 - add ssl profile and fix urls when ssl profile enabled. --- .../servers/eap7/pom.xml | 62 ++++++++++++++++++ .../eap7/src/main/keystore/keycloak.jks | Bin 0 -> 2233 bytes .../src/main/keystore/keycloak.truststore | Bin 0 -> 1857 bytes .../servers/eap7/src/main/xslt/security.xsl | 34 ++++++++++ .../DeploymentArchiveProcessor.java | 18 +++-- .../arquillian/provider/URLProvider.java | 3 +- .../page/AbstractPageWithInjectedUrl.java | 4 +- 7 files changed, 115 insertions(+), 6 deletions(-) create mode 100644 testsuite/integration-arquillian/servers/eap7/src/main/keystore/keycloak.jks create mode 100644 testsuite/integration-arquillian/servers/eap7/src/main/keystore/keycloak.truststore create mode 100644 testsuite/integration-arquillian/servers/eap7/src/main/xslt/security.xsl diff --git a/testsuite/integration-arquillian/servers/eap7/pom.xml b/testsuite/integration-arquillian/servers/eap7/pom.xml index 81d4ef85ff..d61256aba4 100644 --- a/testsuite/integration-arquillian/servers/eap7/pom.xml +++ b/testsuite/integration-arquillian/servers/eap7/pom.xml @@ -238,5 +238,67 @@ + + ssl + + + auth.server.ssl.required + + + + + + org.codehaus.mojo + xml-maven-plugin + + + configure-adapter-subsystem-security + process-resources + + transform + + + + + ${keycloak.server.home}/standalone/configuration + + standalone.xml + + src/main/xslt/security.xsl + ${keycloak.server.home}/standalone/configuration + + + + + + + + maven-resources-plugin + 2.7 + + + copy-keystore + process-resources + + copy-resources + + + ${keycloak.server.home}/standalone/configuration + + + src/main/keystore + + keycloak.jks + keycloak.truststore + + + + + + + + + + diff --git a/testsuite/integration-arquillian/servers/eap7/src/main/keystore/keycloak.jks b/testsuite/integration-arquillian/servers/eap7/src/main/keystore/keycloak.jks new file mode 100644 index 0000000000000000000000000000000000000000..81570ab52922e70c047bf56442ccce582af55539 GIT binary patch literal 2233 zcmcgt`8(7L7oYE#jHMaI2&Kq!%ZzQTS;`(`OR}WFwPeXUN*YU2GuKE$t{A1P$x>t) zJ0U}gVQiVJ?E5}OE+Ss{KJR_r`xm@Foaa2Bb3Q+u=X1{UIr}U7DFvr!R?Q~ z?&g03AAI|;V(s_A9}fZ@0bz)cJq(VOqMcdl=AA29 znPJu}^_f1kNDY?gG+0WsamWy5&em}uPzeb}bQpfzVN7WG?)Q4Ce>D`M0qVBs1Izj3yYo{4iZ{k+ ze3S`AU6&YaUn~8d!LAiitH0CyXwVO#=6e1%hw|DTsX|qwWb~z>*oh+Q>lT80QJ$Q; z%5;r!b8>z5RG6k_Z+XO?GQsy_2)V4R#of5A&!fpcT*Gm!V`SS5O|)Oc^0`Lb`7Ez4 z`Sx*Bhr!9S1E2HR{JjcI^)PB$F9lWMNE?G}e3B>#;cxwUupszl$C~il7YbTrF}wWz z{-nZz*)u7cT-r@!Ef655tDS$zYLI8M-E?7TR7=7oC>XA+9#jg+2 z@{apwP3x(*f0s(*gW~Ih)@+frD^M3p*T-ZQV<^V7AcSlt*R#4P#QB^=3MxfY+USqrnWrSTB#981sqle!Hx}zb2isk-B zkKc*Md9}J*FHQ_MB4e_{J z zn*)6#OuoVGV#(NJeM9#VPb=jNV%<N+=JTL7LTVZ*idY+o?Gi$J?2h@6u=!b$(Hn;NrY~&2Pk=k&=d`d(mz&d`W(&cX1r z_ow%?Z`~%)*@7Z37~ZRqiR_ph|YHWba3h3jF-- zP5IqS%_}GuC#d+uj0e*Mlqo20Z>UyP^%n5dvAFk18SLIP5U@+w3?p7QI#>tH)W64`E0N_0|OfMx~3^yl-9fT7JwzK&Ma3R5# z`br24-(MXllIyBx@NEMAmWLAmp}QWIc#zO5o*t*MZnys-@glj*J;Sd1&n-|5>?2Uw+@<0h|vg~vfRR4f%xy!9L)N?jSx(S^L7XI$>l%&1TD zc>}pPuoN_aTROIOJ+|zfQ~XeNNi^2?7aSnXfwB{*dJsHmEL&*N-MFODlH+f@1?B)i zK&}Kv9CPY$ho|5WA&B7ROhi~JN*foOR8N&{De;i3)9U=Uh=+G{C?WvjNc^Ew9y-1M z;-z3U!Ky%Z)#{mp2=xItK{K;Vdl(gHf0P<1Y8=QaqOqfAl*3e!u;iZ zqn+r({M{6uUi$JxNakbH$&keRjb@c+ReA+R`Ro(>U+}bS6l2ajd-NwcM!MkMHlk@H8W4_LHnT8m&Fogw@|!Tij3-^a(24 zxS>4i;cs@HcH8_*%IE9ah3cCew{CaLFt^eX*I#(vlzYZ~#}B!TZPKMP5B0A8S79P0 zYrOhInU0UA*R##KSyv|aPRzPi@8jH1Uc5u^_%-Vft$&(iLtlN&IB=xKB_y`(W9Xub zjGBj^E2i(#=aHJeBk-#5xywcFGn5P%)o!M~s`~vzYUaoMPeFBpU#))>D;(~exz3P7 z`!C0{`zzP|OMe-((NeALrS`Pzb5_OQ;w?6M@lyQC4vmk}a;7`C&tJLjq4O2qKW)*6 zXIc6@7B!2FXJTe#U|g(dAa5WGj6zvH7BLo)FUuHABUY@FT*999?~z={<7W-mB#;9U zn2Lab$jIPcmbaJLw7lu;(A@;P(=-?N{B zKh9n4n;4ug%(47H=^2ZE5@`%Kr7Wt?-mUZsaa|W)@V{)5&FSsS?_61}5o=ZUd^2X`h;i+|kZX3@n30%2Qu2X-{lW8kT_B{!n9GZAOX>+hL=hl7g zDXVmLAKB3K;ppUbS1sMywK?bW9P->E=+Mn+W_rEiZxxfmPmdq-T#S4^_D<7TQ2%`X z-5<-(y5CxRHkF0(@XvX7`u0>Tyq)j#-ey61qG0t;sV4QsZ679V@zhM+@a0IPgiNf@ z%s`2`3)ee_Zn^Sd!|4a^%i{RD**_cm>S=QCW@ebaYaa9yiMmTDBE3bSUY(6+|nM{e3Hea`KDZEj@x%^88TqL zVC6JT>!{9&ySHc`T$iG>%jz^*Is#`%=Kf!Hn<}3Cn=@Brd%6D#?RWk&BP6yoGWA)` z-)MbHGcSy1OP;h_-iK93KD9nIsx%SiogA(ZTv5j`XHS(&_uDgHi~cmLOx^VE`k8yS zf%aXot3N1eMn`LXN-_L#WB(ZwjbrHtnjdr<*|2SB+OW;`Jg@wLdr!O8NYyqg-kbPZ z;;7Ke8Cw{|W8YpYnjiciZ&Re|xy@b&T&^E^UMIM(e7Cf0P4lP67X;OPnl9-xZO6Ih7^bG<^O+sfvUc1({JQodpT)7J%o~$D z`DSmJD^)tb$MaEXf5Tp{t?I@Xh3@f(^ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/DeploymentArchiveProcessor.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/DeploymentArchiveProcessor.java index 1f74b30ba4..8fba9b0bb4 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/DeploymentArchiveProcessor.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/DeploymentArchiveProcessor.java @@ -35,6 +35,8 @@ public class DeploymentArchiveProcessor implements ApplicationArchiveProcessor { protected final Logger log = org.jboss.logging.Logger.getLogger(this.getClass()); + private final boolean authServerSslRequired = Boolean.parseBoolean(System.getProperty("auth.server.ssl.required")); + public static final String WEBXML_PATH = "/WEB-INF/web.xml"; public static final String ADAPTER_CONFIG_PATH = "/WEB-INF/keycloak.json"; public static final String ADAPTER_CONFIG_PATH_TENANT1 = "/WEB-INF/classes/tenant1-keycloak.json"; @@ -74,10 +76,18 @@ public class DeploymentArchiveProcessor implements ApplicationArchiveProcessor { log.info("Modyfying saml adapter config in " + archive.getName()); Document doc = loadXML(archive.get("WEB-INF/keycloak-saml.xml").getAsset().openStream()); - - modifyDocElementAttribute(doc, "SingleSignOnService", "bindingUrl", "8080", System.getProperty("auth.server.http.port", null)); - modifyDocElementAttribute(doc, "SingleLogoutService", "postBindingUrl", "8080", System.getProperty("auth.server.http.port", null)); - modifyDocElementAttribute(doc, "SingleLogoutService", "redirectBindingUrl", "8080", System.getProperty("auth.server.http.port", null)); + if (authServerSslRequired) { + modifyDocElementAttribute(doc, "SingleSignOnService", "bindingUrl", "8080", System.getProperty("auth.server.https.port", null)); + modifyDocElementAttribute(doc, "SingleSignOnService", "bindingUrl", "http", "https"); + modifyDocElementAttribute(doc, "SingleLogoutService", "postBindingUrl", "8080", System.getProperty("auth.server.https.port", null)); + modifyDocElementAttribute(doc, "SingleLogoutService", "postBindingUrl", "http", "https"); + modifyDocElementAttribute(doc, "SingleLogoutService", "redirectBindingUrl", "8080", System.getProperty("auth.server.https.port", null)); + modifyDocElementAttribute(doc, "SingleLogoutService", "redirectBindingUrl", "http", "https"); + } else { + modifyDocElementAttribute(doc, "SingleSignOnService", "bindingUrl", "8080", System.getProperty("auth.server.http.port", null)); + modifyDocElementAttribute(doc, "SingleLogoutService", "postBindingUrl", "8080", System.getProperty("auth.server.http.port", null)); + modifyDocElementAttribute(doc, "SingleLogoutService", "redirectBindingUrl", "8080", System.getProperty("auth.server.http.port", null)); + } try { archive.add(new StringAsset(IOUtil.documentToString(doc)), adapterConfigPath); diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/provider/URLProvider.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/provider/URLProvider.java index a3447cc2af..95b6003807 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/provider/URLProvider.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/arquillian/provider/URLProvider.java @@ -62,7 +62,8 @@ public class URLProvider extends URLResourceProvider { if (url.getPort() == 8080) { for (Annotation a : qualifiers) { if (OperateOnDeployment.class.isAssignableFrom(a.annotationType())) { - url = new URL(fixedUrl.toExternalForm().replace("8080", System.getProperty("app.server.http.port", null)) + "/" + ((OperateOnDeployment) a).value()); + String port = appServerSslRequired ? System.getProperty("app.server.https.port", "8643"):System.getProperty("app.server.http.port", "8280"); + url = new URL(fixedUrl.toExternalForm().replace("8080", port) + "/" + ((OperateOnDeployment) a).value()); } } diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/page/AbstractPageWithInjectedUrl.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/page/AbstractPageWithInjectedUrl.java index 34149333e7..7ddf5ebd05 100644 --- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/page/AbstractPageWithInjectedUrl.java +++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/page/AbstractPageWithInjectedUrl.java @@ -18,8 +18,10 @@ public abstract class AbstractPageWithInjectedUrl extends AbstractPage { if (System.getProperty("app.server.eap6","false").equals("false")) { return null; } - try { + if(Boolean.parseBoolean(System.getProperty("app.server.ssl.required"))) { + return new URL("https://localhost:" + System.getProperty("app.server.https.port", "8543") + "/" + url); + }; return new URL("http://localhost:" + System.getProperty("app.server.http.port", "8180") + "/" + url); } catch (MalformedURLException e) { e.printStackTrace();