diff --git a/testsuite/integration-arquillian/tests/other/mod_auth_mellon/README.md b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/README.md
new file mode 100644
index 0000000000..b6fa06b8c7
--- /dev/null
+++ b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/README.md
@@ -0,0 +1,17 @@
+# Mod_auth_mellon test
+
+## Docker image
+
+Docker image contains apache + mod_auth_mellon and two html files unprotected (/) and protected (/auth).
+
+## Build docker image
+
+docker build -t apache-mellon docker/
+
+## Run docker image
+
+docker run -d -p 8380:80 apache-mellon
+
+## Run tests
+
+mvn clean install [-Dapache.mod_auth_mellon.url=http://localhost:8380]
\ No newline at end of file
diff --git a/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/Dockerfile b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/Dockerfile
new file mode 100644
index 0000000000..014e1027e6
--- /dev/null
+++ b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/Dockerfile
@@ -0,0 +1,17 @@
+FROM ubuntu
+
+RUN apt-get update && apt-get install -y apache2 && apt-get install -y libapache2-mod-auth-mellon
+
+RUN mkdir /etc/apache2/mellon
+
+COPY mellon/* /etc/apache2/mellon/
+
+COPY auth_mellon.conf /etc/apache2/mods-enabled/
+
+COPY www/* /var/www/html/
+
+RUN mkdir /var/www/html/auth
+
+COPY www/auth/* /var/www/html/auth/
+
+CMD /usr/sbin/apache2ctl -D FOREGROUND
diff --git a/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/auth_mellon.conf b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/auth_mellon.conf
new file mode 100644
index 0000000000..4ab47855de
--- /dev/null
+++ b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/auth_mellon.conf
@@ -0,0 +1,27 @@
+MellonCacheSize 100
+MellonLockFile "/run/mod_auth_mellon/lock"
+
+# This is a server-wide configuration that will add information from the Mellon session to all requests.
+
+ # Add information from the mod_auth_mellon session to the request.
+ MellonEnable "info"
+
+ # Configure the SP metadata
+ # This should be the files which were created when creating SP metadata.
+ MellonSPPrivateKeyFile /etc/apache2/mellon/http_localhost_auth.key
+
+ MellonSPCertFile /etc/apache2/mellon/http_localhost_auth.cert
+ MellonSPMetadataFile /etc/apache2/mellon/http_localhost_auth.xml
+
+ # IdP metadata. This should be the metadata file you got from the IdP.
+ MellonIdPMetadataFile /etc/apache2/mellon/idp-metadata.xml
+
+ # The location all endpoints should be located under.
+ # It is the URL to this location that is used as the second parameter to the metadata generation script.
+ # This path is relative to the root of the web server.
+ MellonEndpointPath /mellon
+
+
+
+ MellonEnable "auth"
+
diff --git a/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/mellon/http_localhost_auth.cert b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/mellon/http_localhost_auth.cert
new file mode 100644
index 0000000000..1cd6fb3b29
--- /dev/null
+++ b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/mellon/http_localhost_auth.cert
@@ -0,0 +1,17 @@
+-----BEGIN CERTIFICATE-----
+MIICrjCCAZYCCQDmdnUguf+VxTANBgkqhkiG9w0BAQsFADAZMRcwFQYDVQQDDA5s
+b2NhbGhvc3Q6ODM4MDAeFw0xNjAxMTkxMTUwMDdaFw0yNjAxMTgxMTUwMDdaMBkx
+FzAVBgNVBAMMDmxvY2FsaG9zdDo4MzgwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEAuissRqhpCBR9nMuoRp+Varx151DKbmdL6NhNxWUOdaYF+fSpNmtG
+0NsaYV0Coz0Jak/6ap7EfhUeG83vh0G2xj6YTVYtXDVMnUPGmzHprvmFvTOfP4KI
+VM+1aHcPLfk8ED4ea6TOPDGBjmQw8Y9nZaMATDqEnO8IGaF/Jkl476O3Ek1Nd5yO
+Sday83Or1GkD+ZsZxvyc0CpGJYYaGPrsUFAXekebSlon5SIDerQB7WgABSoGOKDo
+I8Z+JU/KftwewrE0hr9GZ8HAYBJVt0XfuNSWL7ulmF2HC3RZ877FYk3Vg3KVQs7d
+yJfK3+V3pGyzOBp/xU61nVZrb0fvua1hWQIDAQABMA0GCSqGSIb3DQEBCwUAA4IB
+AQCPR4RhXan28Eq/A6pGfJ29USKLqqDZChYy9q71Zi8hTs4+YYD6wMU8kz+MnTHC
+/Gf+6XFix7W07XxpFirZ5dkENn7lQUBklBmbxRdB9aW9WfJjx148a/I4+pXZalEI
+fqpnmWBYt4+/L9exu8tIwj/bshBmuO8Nn4ronTBDgrTCu5feyYO5l12hEdT2d+5r
+wc/Be66ftl8eOhsr9XJNidjoTVGB3SlHC6v0J7izgS+wT0UxIi3a3gwzW5ZsF4y8
+8iEicAVGmkjgmyJ5GoInQhVhLU2vlxgoULAEWKhF79JYChkGSg8dXAvqBfLm3OCg
+hxj9HldPc8mCn3gMt8F+POZL
+-----END CERTIFICATE-----
diff --git a/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/mellon/http_localhost_auth.key b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/mellon/http_localhost_auth.key
new file mode 100644
index 0000000000..e3fe5ac45b
--- /dev/null
+++ b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/mellon/http_localhost_auth.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC6KyxGqGkIFH2c
+y6hGn5VqvHXnUMpuZ0vo2E3FZQ51pgX59Kk2a0bQ2xphXQKjPQlqT/pqnsR+FR4b
+ze+HQbbGPphNVi1cNUydQ8abMemu+YW9M58/gohUz7Vodw8t+TwQPh5rpM48MYGO
+ZDDxj2dlowBMOoSc7wgZoX8mSXjvo7cSTU13nI5J1rLzc6vUaQP5mxnG/JzQKkYl
+hhoY+uxQUBd6R5tKWiflIgN6tAHtaAAFKgY4oOgjxn4lT8p+3B7CsTSGv0ZnwcBg
+ElW3Rd+41JYvu6WYXYcLdFnzvsViTdWDcpVCzt3Il8rf5XekbLM4Gn/FTrWdVmtv
+R++5rWFZAgMBAAECggEAMqBW9AgMN/RKjH8djccL/PCvJ25i/k78558a1xk6K2gw
+q96KvY/CvD05GU0P0JBipRSGxsPSL29StsDz6FZIe/S9uho7T5327bVmpwGVyM12
+PxNwtPasWFP7wyLNb/UdDlW2NBOnOdtEnhJE9QvIVG1VQWWQdpTSIRY325OTXacy
+/0h4j9MR5qzEhSjsnQ/YdHfNNHU2WFSisl5JLmhEdesdcEpL9ONDX0DAxujrWpuC
+x1UQY7IIW2QzL1j8AWBGakFYRw18AJBkw7MkNct4LwcfWGHtgCQtD6PF5Xm6KeVA
+QAzNo5vv+DZu9jjV8psYnQx1fJYEK88triqZ9Nv1OQKBgQDbH4pELjyuAvZUdUb3
+bpZnV5U5i7cSURUdTkyKMJL4tgO/7riuDuyaZBxAZ60/tjmZ2c470udmI0RGVcGd
+6QXPAqYZf6sV7Mh5TDrH5lG+zhPLfM26k6lNj7btm3xRQAaq9OPKSxPV8EZCQxNu
+lU9QdsQMfzZ8B8ydwo7Z5d0xqwKBgQDZf9r4KQCzzwpEUnyLZv51Yp2J3qxvYhw2
+RXEv4xllMVSJ8YxlIMdwy/k1C5cO7XOOuNH0gKMgpjT1bPTjUoWsa7qDrhTOZoNq
+ApPXk+GgscQBCB6zZiCK5xYkw5hFXoe3mGWDr6984gXf4WX8I6QE1u0YVT3gjpEM
+4wtrY4O9CwKBgQCOlySrn4b/GZBgf3yx0PXww86ohuGX+smJq4UlO9y4GgGwqVDm
+e3G+Oj0kMBNObW9oTZLl3SWVkoeAWZfIAXY1Mp0R5MFZYB9Ix7FMmfVB++pntYxO
+yH4Yqde5IUAxwz9Tik6dOmPrCRM/VVTU1japvs9u7m1vIsglNREufGWHRwKBgCgL
+NCNwWSLBwaAml6uKwNqX121kw9aV95++VUJ9y1UoKepjwHd1+4I266Dqi1tCOH5U
+ZMNhU6dVMnblIokfzmCaTPKlgEsn8JX594I/RdEyKWYPOqfI68DnHtqR8F0FNHOG
+6Vm/ZM3XR0Ga3A35+d6yO2C5gPTxCp+Wxal13vFVAoGAHO5T3egM/30MsSAexSbt
+LdTTmIOxuVGWriRHPM8nOl24/ToE10YlslZTG/pfVP2LFuh6gySuR8NXWdRx26iP
+3SWv0r3L/o0QrZXPdngTVrvi0t9sCzOXFW1+YrLO4YCX822LEXcFpTQHeYs95zAG
+HP19NdUCeAl8/YFqifhpHvo=
+-----END PRIVATE KEY-----
diff --git a/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/mellon/http_localhost_auth.xml b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/mellon/http_localhost_auth.xml
new file mode 100644
index 0000000000..3e77cc87b6
--- /dev/null
+++ b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/mellon/http_localhost_auth.xml
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+ MIICrjCCAZYCCQDmdnUguf+VxTANBgkqhkiG9w0BAQsFADAZMRcwFQYDVQQDDA5s
+ b2NhbGhvc3Q6ODM4MDAeFw0xNjAxMTkxMTUwMDdaFw0yNjAxMTgxMTUwMDdaMBkx
+ FzAVBgNVBAMMDmxvY2FsaG9zdDo4MzgwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+ MIIBCgKCAQEAuissRqhpCBR9nMuoRp+Varx151DKbmdL6NhNxWUOdaYF+fSpNmtG
+ 0NsaYV0Coz0Jak/6ap7EfhUeG83vh0G2xj6YTVYtXDVMnUPGmzHprvmFvTOfP4KI
+ VM+1aHcPLfk8ED4ea6TOPDGBjmQw8Y9nZaMATDqEnO8IGaF/Jkl476O3Ek1Nd5yO
+ Sday83Or1GkD+ZsZxvyc0CpGJYYaGPrsUFAXekebSlon5SIDerQB7WgABSoGOKDo
+ I8Z+JU/KftwewrE0hr9GZ8HAYBJVt0XfuNSWL7ulmF2HC3RZ877FYk3Vg3KVQs7d
+ yJfK3+V3pGyzOBp/xU61nVZrb0fvua1hWQIDAQABMA0GCSqGSIb3DQEBCwUAA4IB
+ AQCPR4RhXan28Eq/A6pGfJ29USKLqqDZChYy9q71Zi8hTs4+YYD6wMU8kz+MnTHC
+ /Gf+6XFix7W07XxpFirZ5dkENn7lQUBklBmbxRdB9aW9WfJjx148a/I4+pXZalEI
+ fqpnmWBYt4+/L9exu8tIwj/bshBmuO8Nn4ronTBDgrTCu5feyYO5l12hEdT2d+5r
+ wc/Be66ftl8eOhsr9XJNidjoTVGB3SlHC6v0J7izgS+wT0UxIi3a3gwzW5ZsF4y8
+ 8iEicAVGmkjgmyJ5GoInQhVhLU2vlxgoULAEWKhF79JYChkGSg8dXAvqBfLm3OCg
+ hxj9HldPc8mCn3gMt8F+POZL
+
+
+
+
+
+
+
+ MIICrjCCAZYCCQDmdnUguf+VxTANBgkqhkiG9w0BAQsFADAZMRcwFQYDVQQDDA5s
+ b2NhbGhvc3Q6ODM4MDAeFw0xNjAxMTkxMTUwMDdaFw0yNjAxMTgxMTUwMDdaMBkx
+ FzAVBgNVBAMMDmxvY2FsaG9zdDo4MzgwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+ MIIBCgKCAQEAuissRqhpCBR9nMuoRp+Varx151DKbmdL6NhNxWUOdaYF+fSpNmtG
+ 0NsaYV0Coz0Jak/6ap7EfhUeG83vh0G2xj6YTVYtXDVMnUPGmzHprvmFvTOfP4KI
+ VM+1aHcPLfk8ED4ea6TOPDGBjmQw8Y9nZaMATDqEnO8IGaF/Jkl476O3Ek1Nd5yO
+ Sday83Or1GkD+ZsZxvyc0CpGJYYaGPrsUFAXekebSlon5SIDerQB7WgABSoGOKDo
+ I8Z+JU/KftwewrE0hr9GZ8HAYBJVt0XfuNSWL7ulmF2HC3RZ877FYk3Vg3KVQs7d
+ yJfK3+V3pGyzOBp/xU61nVZrb0fvua1hWQIDAQABMA0GCSqGSIb3DQEBCwUAA4IB
+ AQCPR4RhXan28Eq/A6pGfJ29USKLqqDZChYy9q71Zi8hTs4+YYD6wMU8kz+MnTHC
+ /Gf+6XFix7W07XxpFirZ5dkENn7lQUBklBmbxRdB9aW9WfJjx148a/I4+pXZalEI
+ fqpnmWBYt4+/L9exu8tIwj/bshBmuO8Nn4ronTBDgrTCu5feyYO5l12hEdT2d+5r
+ wc/Be66ftl8eOhsr9XJNidjoTVGB3SlHC6v0J7izgS+wT0UxIi3a3gwzW5ZsF4y8
+ 8iEicAVGmkjgmyJ5GoInQhVhLU2vlxgoULAEWKhF79JYChkGSg8dXAvqBfLm3OCg
+ hxj9HldPc8mCn3gMt8F+POZL
+
+
+
+
+
+
+
+ urn:oasis:names:tc:SAML:2.0:nameid-format:transient
+
+
+
+
+
diff --git a/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/mellon/idp-metadata.xml b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/mellon/idp-metadata.xml
new file mode 100755
index 0000000000..fd88682a3c
--- /dev/null
+++ b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/mellon/idp-metadata.xml
@@ -0,0 +1,34 @@
+
+
+
+
+ urn:oasis:names:tc:SAML:2.0:nameid-format:persistent
+
+
+ urn:oasis:names:tc:SAML:2.0:nameid-format:transient
+
+
+ urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
+
+
+ urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
+
+
+
+
+
+
+
+
+ MIICpTCCAY0CBgFSP3CJrTANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAttZWxsb24tdGVzdDAeFw0xNjAxMTQwOTE5NDVaFw0yNjAxMTQwOTIxMjVaMBYxFDASBgNVBAMMC21lbGxvbi10ZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApaZ6nndLegc+aKXNog08KdWOIZfr393e0nlqZ3SzNCYJ+IrSAWepCNvUW4W0samrtC47XBYNJwBSw9KCLNcpOeR7IC+gtmm8t9VH0QRxDEOvoLoj0zMkuaBhF+1NZdt6kc5gYVSeymkFSG/Eyz06Zo9zfhb52tUK83hYPcRE2azBDAuffnnHGg+fiCMZtMz7qCYXSoGy15odM1AypILDGxCtDpk0nPmwp6AlA7LpWLKYFEXrXhPmZGw2eDA6FqLFYgBovffJzFy1WzqpAzpKbYqVbb/yKUbv5NI4ELlOdjvXfoB7wOp3cHwnuq1G8YjR7OKLeVtszKXUPCjwFSZnFwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBwRkPh3pSAG1UWr1rJW9LMVdfu6KFsVTCMqExuJKUrH4hAPKXXi9iEAyiB/+NdnG8bgvU0xhdH9lW51J1JpH3xRtOMV+1CAZB41RFx1r/zJg0Zrdbfodv1UFJtLhSIKhKnfoSdlml2O9SHwd4VQmwz/QQqzBIS+yJDv7cOxMRszryWq5aWCPMosxwuAJzjwlF6jBHqidkd4EGTNMDK1pDZN1voiYS0ry7h7Lcq2ZbrBFzBqzHvXieym68ACDHr5hkKe065ne1hCgO/+POsAi6VU+qlSbzsD9NenHP60c9+Dt/IY9DeX6IubXChcW5A+qnb5qRWBtwXshfcsDFHYkBJ
+
+
+
+
+
+
+
diff --git a/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/www/auth/index.html b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/www/auth/index.html
new file mode 100644
index 0000000000..eca13d5a35
--- /dev/null
+++ b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/www/auth/index.html
@@ -0,0 +1,3 @@
+Go to unprotected resource
+logout
+Protected resource
diff --git a/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/www/index.html b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/www/index.html
new file mode 100755
index 0000000000..37a8fcb91d
--- /dev/null
+++ b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/docker/www/index.html
@@ -0,0 +1,2 @@
+Go to protected resource
+Unprotected resource
diff --git a/testsuite/integration-arquillian/tests/other/mod_auth_mellon/pom.xml b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/pom.xml
new file mode 100644
index 0000000000..00c1f27492
--- /dev/null
+++ b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/pom.xml
@@ -0,0 +1,17 @@
+
+
+ 4.0.0
+
+
+ org.keycloak.testsuite
+ integration-arquillian-tests-other
+ 1.9.0.CR1-SNAPSHOT
+
+
+ integration-arquillian-tests-other-mod_auth_mellon
+
+ Mod_auth_mellon tests
+
+
\ No newline at end of file
diff --git a/testsuite/integration-arquillian/tests/other/mod_auth_mellon/src/main/java/org/keycloak/testsuite/mod_auth_mellon/ModAuthMellonProtectedResource.java b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/src/main/java/org/keycloak/testsuite/mod_auth_mellon/ModAuthMellonProtectedResource.java
new file mode 100644
index 0000000000..fafecf73f8
--- /dev/null
+++ b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/src/main/java/org/keycloak/testsuite/mod_auth_mellon/ModAuthMellonProtectedResource.java
@@ -0,0 +1,32 @@
+package org.keycloak.testsuite.mod_auth_mellon;
+
+import org.keycloak.testsuite.page.AbstractPageWithInjectedUrl;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.FindBy;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+/**
+ * @author mhajas
+ */
+public class ModAuthMellonProtectedResource extends AbstractPageWithInjectedUrl{
+
+ @FindBy(linkText = "logout")
+ private WebElement logoutButton;
+
+ @Override
+ public URL getInjectedUrl() {
+ try {
+ return new URL(System.getProperty("apache.mod_auth_mellon.url","http://localhost:8380") + "/auth");
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ }
+
+ return null;
+ }
+
+ public void logout() {
+ logoutButton.click();
+ }
+}
diff --git a/testsuite/integration-arquillian/tests/other/mod_auth_mellon/src/main/java/org/keycloak/testsuite/mod_auth_mellon/ModAuthMellonUnprotectedResource.java b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/src/main/java/org/keycloak/testsuite/mod_auth_mellon/ModAuthMellonUnprotectedResource.java
new file mode 100644
index 0000000000..76170bf129
--- /dev/null
+++ b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/src/main/java/org/keycloak/testsuite/mod_auth_mellon/ModAuthMellonUnprotectedResource.java
@@ -0,0 +1,23 @@
+package org.keycloak.testsuite.mod_auth_mellon;
+
+import org.keycloak.testsuite.page.AbstractPageWithInjectedUrl;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+/**
+ * @author mhajas
+ */
+public class ModAuthMellonUnprotectedResource extends AbstractPageWithInjectedUrl{
+
+ @Override
+ public URL getInjectedUrl() {
+ try {
+ return new URL(System.getProperty("apache.mod_auth_mellon.url","http://localhost:8380/"));
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ }
+
+ return null;
+ }
+}
diff --git a/testsuite/integration-arquillian/tests/other/mod_auth_mellon/src/test/java/org/keycloak/testsuite/mod_auth_mellon/ModAuthMellonTest.java b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/src/test/java/org/keycloak/testsuite/mod_auth_mellon/ModAuthMellonTest.java
new file mode 100644
index 0000000000..1e55cfdf0e
--- /dev/null
+++ b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/src/test/java/org/keycloak/testsuite/mod_auth_mellon/ModAuthMellonTest.java
@@ -0,0 +1,49 @@
+package org.keycloak.testsuite.mod_auth_mellon;
+
+import org.jboss.arquillian.graphene.page.Page;
+import org.junit.Test;
+import org.keycloak.representations.idm.RealmRepresentation;
+import org.keycloak.testsuite.AbstractAuthTest;
+import org.keycloak.testsuite.util.URLAssert;
+
+import javax.xml.transform.TransformerException;
+import java.util.List;
+
+import static org.junit.Assert.assertTrue;
+import static org.keycloak.testsuite.util.IOUtil.loadRealm;
+
+/**
+ * @author mhajas
+ */
+public class ModAuthMellonTest extends AbstractAuthTest {
+ @Page
+ private ModAuthMellonProtectedResource modAuthMellonProtectedResourcePage;
+
+ @Page
+ private ModAuthMellonUnprotectedResource modAuthMellonUnprotectedResourcePage;
+
+ @Override
+ public void addTestRealms(List testRealms) {
+ testRealms.add(loadRealm("/mellon-realm.json"));
+ }
+
+ @Test
+ public void modAuthMellonTest() throws TransformerException {
+ testRealmPage.setAuthRealm("mellon-test");
+ testRealmSAMLLoginPage.setAuthRealm("mellon-test");
+
+ modAuthMellonUnprotectedResourcePage.navigateTo();
+ assertTrue(driver.getPageSource().contains("Unprotected resource"));
+
+ modAuthMellonProtectedResourcePage.navigateTo();
+ URLAssert.assertCurrentUrlStartsWith(testRealmSAMLLoginPage);
+ testRealmSAMLLoginPage.form().login(bburkeUser);
+ assertTrue(driver.getPageSource().contains("Protected resource"));
+
+ modAuthMellonProtectedResourcePage.logout();
+ assertTrue(driver.getPageSource().contains("Unprotected resource"));
+
+ modAuthMellonProtectedResourcePage.navigateTo();
+ URLAssert.assertCurrentUrlStartsWith(testRealmSAMLLoginPage);
+ }
+}
diff --git a/testsuite/integration-arquillian/tests/other/mod_auth_mellon/src/test/resources/mellon-realm.json b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/src/test/resources/mellon-realm.json
new file mode 100644
index 0000000000..7c2c624995
--- /dev/null
+++ b/testsuite/integration-arquillian/tests/other/mod_auth_mellon/src/test/resources/mellon-realm.json
@@ -0,0 +1,1169 @@
+{
+ "id" : "mellon-test",
+ "realm" : "mellon-test",
+ "notBefore" : 1453206021,
+ "revokeRefreshToken" : false,
+ "accessTokenLifespan" : 300,
+ "accessTokenLifespanForImplicitFlow" : 900,
+ "ssoSessionIdleTimeout" : 1800,
+ "ssoSessionMaxLifespan" : 36000,
+ "offlineSessionIdleTimeout" : 2592000,
+ "accessCodeLifespan" : 60,
+ "accessCodeLifespanUserAction" : 300,
+ "accessCodeLifespanLogin" : 1800,
+ "enabled" : true,
+ "sslRequired" : "external",
+ "registrationAllowed" : false,
+ "registrationEmailAsUsername" : false,
+ "rememberMe" : false,
+ "verifyEmail" : false,
+ "resetPasswordAllowed" : false,
+ "editUsernameAllowed" : false,
+ "bruteForceProtected" : false,
+ "maxFailureWaitSeconds" : 900,
+ "minimumQuickLoginWaitSeconds" : 60,
+ "waitIncrementSeconds" : 60,
+ "quickLoginCheckMilliSeconds" : 1000,
+ "maxDeltaTimeSeconds" : 43200,
+ "failureFactor" : 30,
+ "privateKey" : "MIIEogIBAAKCAQEApaZ6nndLegc+aKXNog08KdWOIZfr393e0nlqZ3SzNCYJ+IrSAWepCNvUW4W0samrtC47XBYNJwBSw9KCLNcpOeR7IC+gtmm8t9VH0QRxDEOvoLoj0zMkuaBhF+1NZdt6kc5gYVSeymkFSG/Eyz06Zo9zfhb52tUK83hYPcRE2azBDAuffnnHGg+fiCMZtMz7qCYXSoGy15odM1AypILDGxCtDpk0nPmwp6AlA7LpWLKYFEXrXhPmZGw2eDA6FqLFYgBovffJzFy1WzqpAzpKbYqVbb/yKUbv5NI4ELlOdjvXfoB7wOp3cHwnuq1G8YjR7OKLeVtszKXUPCjwFSZnFwIDAQABAoIBAHF2mOLWX7KUJ6FSgImRezZEevhzsTNELA4K8GEwxFbh/05o9/PSZywUN18BNIXE7EGcsTggOp4OUKKlHFlOf4SSBexD81c/Ee7xfiGjYzO9YR08orFVhMBJJHhZKPyt20ToEYhZh/KpAN9e/3Me21PIypkBb97+smOWeQrF10spOHoJEoM5FUFHIDQN+i5mqavnzzCASmGNPB7UC+3ax6xRyTdlsEvXWKWaYlETu8lPMqGBW6Bx+XagcxxmIXNiydsYDSVKLVPHB/IeP4UfRiT77EYBZo0uUnCEi8Ff3lMvuEfA3d110166exOpyw9RgCTLdyQi1Mkk+1TT4T7p6hECgYEA35I5R3XizRMx6cS9i8nEmtdAkuPdoT9HbfXa39rkbHEgPemIUrc4ZOts8+V1EvNZLxWpPvqLGJqJCj/lbiVyvbYBXLXFBuhvsR52/sZm8cheIozqfk9WIUcMQJi8vc4upL/AW2kevvsda7t3wNqbVsvaJwiKT7acxnruEO+xz8UCgYEAva2A1f73NwLE7bCcTNi+oPg2/jM//Y5hIyq02Tzv5EUsXLTdAt+5N8UUP6+swKmD6G/5EG3QK2oL0AXq7tW1xAC05b86jyp6rSj2hl7SQWkQv6ZwTdJRErEfgsz459Lp7G6nRozPoMEdqouhbbiCKCPIpYA28xFZVd+128QFjSsCgYBv2USktppvxGGdNRsq2xdr67JXin4vlGvU3EHS6jyK8BGUR8g2sYkaHBnW7v2iLHJ6ttiENG3wMifLI+pRL5T2yh5mVl2qthBiyP35OiL4ZSiLGnqaFHDflx7PFlqejo8RRwkh8jY6j4DJi/E+X1+Fjdim3IPtm0tVlNyTRodrjQKBgHQC7s30SBgpZXFLmA2Yc9/YcSpBBl56+wabVEmab89aT6vUI2lilNJ7g8sAE9Uy2S8NbXSS9cPX9KmjNPInXCkplXr/3z05ahcG+uFslYTUUh4mGoI+pL+d/fvuij6gTdsCQuVvsn5MH2z0QiPtug369Pnk1bcNYWqYjY6A8jRJAoGAHK9D9ZJkK1HenjykOZm/gEh5Uw0gg0SZTPYqoyofXnoXnlm9sHz7P3kos/A1IXQvgXeZ2K/wO84QBqlHdlLRJFm5VLdo5O/QA/isfyUU2Q5N8rq0LUgMoMyXm7ayUKvRgj0sQawSkMVwv32EiChXx8kOqF8GZureWdYPM7gSWCI=",
+ "publicKey" : "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApaZ6nndLegc+aKXNog08KdWOIZfr393e0nlqZ3SzNCYJ+IrSAWepCNvUW4W0samrtC47XBYNJwBSw9KCLNcpOeR7IC+gtmm8t9VH0QRxDEOvoLoj0zMkuaBhF+1NZdt6kc5gYVSeymkFSG/Eyz06Zo9zfhb52tUK83hYPcRE2azBDAuffnnHGg+fiCMZtMz7qCYXSoGy15odM1AypILDGxCtDpk0nPmwp6AlA7LpWLKYFEXrXhPmZGw2eDA6FqLFYgBovffJzFy1WzqpAzpKbYqVbb/yKUbv5NI4ELlOdjvXfoB7wOp3cHwnuq1G8YjR7OKLeVtszKXUPCjwFSZnFwIDAQAB",
+ "certificate" : "MIICpTCCAY0CBgFSP3CJrTANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAttZWxsb24tdGVzdDAeFw0xNjAxMTQwOTE5NDVaFw0yNjAxMTQwOTIxMjVaMBYxFDASBgNVBAMMC21lbGxvbi10ZXN0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApaZ6nndLegc+aKXNog08KdWOIZfr393e0nlqZ3SzNCYJ+IrSAWepCNvUW4W0samrtC47XBYNJwBSw9KCLNcpOeR7IC+gtmm8t9VH0QRxDEOvoLoj0zMkuaBhF+1NZdt6kc5gYVSeymkFSG/Eyz06Zo9zfhb52tUK83hYPcRE2azBDAuffnnHGg+fiCMZtMz7qCYXSoGy15odM1AypILDGxCtDpk0nPmwp6AlA7LpWLKYFEXrXhPmZGw2eDA6FqLFYgBovffJzFy1WzqpAzpKbYqVbb/yKUbv5NI4ELlOdjvXfoB7wOp3cHwnuq1G8YjR7OKLeVtszKXUPCjwFSZnFwIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQBwRkPh3pSAG1UWr1rJW9LMVdfu6KFsVTCMqExuJKUrH4hAPKXXi9iEAyiB/+NdnG8bgvU0xhdH9lW51J1JpH3xRtOMV+1CAZB41RFx1r/zJg0Zrdbfodv1UFJtLhSIKhKnfoSdlml2O9SHwd4VQmwz/QQqzBIS+yJDv7cOxMRszryWq5aWCPMosxwuAJzjwlF6jBHqidkd4EGTNMDK1pDZN1voiYS0ry7h7Lcq2ZbrBFzBqzHvXieym68ACDHr5hkKe065ne1hCgO/+POsAi6VU+qlSbzsD9NenHP60c9+Dt/IY9DeX6IubXChcW5A+qnb5qRWBtwXshfcsDFHYkBJ",
+ "codeSecret" : "6ed3c059-96b4-46d2-a385-c25ea96853ca",
+ "roles" : {
+ "realm" : [ {
+ "id" : "6314a145-4654-45b8-bc05-3b6a01e76236",
+ "name" : "test-Role",
+ "scopeParamRequired" : false,
+ "composite" : false
+ }, {
+ "id" : "773501e4-74d9-4559-aae6-76a07ab678ce",
+ "name" : "offline_access",
+ "description" : "${role_offline-access}",
+ "scopeParamRequired" : true,
+ "composite" : false
+ } ],
+ "client" : {
+ "realm-management" : [ {
+ "id" : "2a264cc0-53f3-42f0-893a-9db5c4b1fae4",
+ "name" : "view-identity-providers",
+ "description" : "${role_view-identity-providers}",
+ "scopeParamRequired" : false,
+ "composite" : false
+ }, {
+ "id" : "faaf1a94-63bf-48a7-9bf1-80150799f500",
+ "name" : "view-clients",
+ "description" : "${role_view-clients}",
+ "scopeParamRequired" : false,
+ "composite" : false
+ }, {
+ "id" : "f41abbff-87fe-45ac-8e67-4e677cabaa45",
+ "name" : "manage-users",
+ "description" : "${role_manage-users}",
+ "scopeParamRequired" : false,
+ "composite" : false
+ }, {
+ "id" : "d5ce0085-7e1d-4b31-ab14-babd84c42e41",
+ "name" : "create-client",
+ "description" : "${role_create-client}",
+ "scopeParamRequired" : false,
+ "composite" : false
+ }, {
+ "id" : "2cdf6320-2599-461c-a6d1-804d99c208c5",
+ "name" : "view-events",
+ "description" : "${role_view-events}",
+ "scopeParamRequired" : false,
+ "composite" : false
+ }, {
+ "id" : "9d251c40-6362-4acd-a88b-e3149f2735d2",
+ "name" : "manage-identity-providers",
+ "description" : "${role_manage-identity-providers}",
+ "scopeParamRequired" : false,
+ "composite" : false
+ }, {
+ "id" : "1acc7eb8-187a-4302-82c0-96ad713c2872",
+ "name" : "view-realm",
+ "description" : "${role_view-realm}",
+ "scopeParamRequired" : false,
+ "composite" : false
+ }, {
+ "id" : "2736520d-e0ec-4453-857b-215fbb64a458",
+ "name" : "impersonation",
+ "description" : "${role_impersonation}",
+ "scopeParamRequired" : false,
+ "composite" : false
+ }, {
+ "id" : "7b0c5330-16f2-4a57-b912-bca2b2b964be",
+ "name" : "realm-admin",
+ "description" : "${role_realm-admin}",
+ "scopeParamRequired" : false,
+ "composite" : true,
+ "composites" : {
+ "client" : {
+ "realm-management" : [ "view-realm", "view-clients", "view-identity-providers", "impersonation", "view-users", "manage-events", "manage-users", "create-client", "manage-clients", "view-events", "manage-realm", "manage-identity-providers" ]
+ }
+ }
+ }, {
+ "id" : "89d5a891-f59c-4ab5-85f1-59e1e6a6a980",
+ "name" : "view-users",
+ "description" : "${role_view-users}",
+ "scopeParamRequired" : false,
+ "composite" : false
+ }, {
+ "id" : "df1d7313-cdd5-48da-9189-ef935db6acbf",
+ "name" : "manage-events",
+ "description" : "${role_manage-events}",
+ "scopeParamRequired" : false,
+ "composite" : false
+ }, {
+ "id" : "319e28f5-7044-4788-a451-edfdcb8f5651",
+ "name" : "manage-clients",
+ "description" : "${role_manage-clients}",
+ "scopeParamRequired" : false,
+ "composite" : false
+ }, {
+ "id" : "42de8b5d-e03d-4e6c-b277-e8aed7771ced",
+ "name" : "manage-realm",
+ "description" : "${role_manage-realm}",
+ "scopeParamRequired" : false,
+ "composite" : false
+ } ],
+ "http://localhost:8380/auth" : [ ],
+ "security-admin-console" : [ ],
+ "admin-cli" : [ ],
+ "broker" : [ {
+ "id" : "b0fbb4b2-6632-4c26-8292-c90a64dbf145",
+ "name" : "read-token",
+ "description" : "${role_read-token}",
+ "scopeParamRequired" : false,
+ "composite" : false
+ } ],
+ "account" : [ {
+ "id" : "52fa45bc-116f-4b27-88f1-1d71a5096d2a",
+ "name" : "view-profile",
+ "description" : "${role_view-profile}",
+ "scopeParamRequired" : false,
+ "composite" : false
+ }, {
+ "id" : "2e63f1a2-3410-4a86-8938-1beea9e844fc",
+ "name" : "manage-account",
+ "description" : "${role_manage-account}",
+ "scopeParamRequired" : false,
+ "composite" : false
+ } ]
+ }
+ },
+ "groups" : [ ],
+ "defaultRoles" : [ "offline_access" ],
+ "requiredCredentials" : [ "password" ],
+ "otpPolicyType" : "totp",
+ "otpPolicyAlgorithm" : "HmacSHA1",
+ "otpPolicyInitialCounter" : 0,
+ "otpPolicyDigits" : 6,
+ "otpPolicyLookAheadWindow" : 1,
+ "otpPolicyPeriod" : 30,
+ "users" : [ {
+ "id" : "df34636d-0ade-4843-9d85-68784c541bc9",
+ "createdTimestamp" : 1452774520942,
+ "username" : "bburke",
+ "enabled" : true,
+ "totp" : false,
+ "emailVerified" : false,
+ "credentials" : [ {
+ "type" : "password",
+ "hashedSaltedValue" : "J53IPqrQcatayK0PB3vY+sxz6Zc9rUwdFiSbMyaLNmvtcCkJ3WElIFAcsLoA7i+rwvQu/VrN+JGi32sxEzQVNg==",
+ "salt" : "sfDAWuC3Ue2DB9+WNmRWRw==",
+ "hashIterations" : 1,
+ "counter" : 0,
+ "algorithm" : "pbkdf2",
+ "digits" : 0
+ } ],
+ "requiredActions" : [ ],
+ "realmRoles" : [ "offline_access" ],
+ "clientRoles" : {
+ "account" : [ "view-profile", "manage-account" ]
+ },
+ "groups" : [ ]
+ } ],
+ "clientScopeMappings" : {
+ "realm-management" : [ {
+ "client" : "security-admin-console",
+ "roles" : [ "realm-admin" ]
+ }, {
+ "client" : "admin-cli",
+ "roles" : [ "realm-admin" ]
+ } ]
+ },
+ "clients" : [ {
+ "id" : "f8845697-b112-4f6f-b57c-2e44982c79a7",
+ "clientId" : "realm-management",
+ "name" : "${client_realm-management}",
+ "surrogateAuthRequired" : false,
+ "enabled" : true,
+ "clientAuthenticatorType" : "client-secret",
+ "secret" : "686825d9-eb71-43d9-8b7f-b544818737ed",
+ "redirectUris" : [ ],
+ "webOrigins" : [ ],
+ "notBefore" : 0,
+ "bearerOnly" : true,
+ "consentRequired" : false,
+ "standardFlowEnabled" : true,
+ "implicitFlowEnabled" : false,
+ "directAccessGrantsEnabled" : false,
+ "serviceAccountsEnabled" : false,
+ "publicClient" : false,
+ "frontchannelLogout" : false,
+ "attributes" : { },
+ "fullScopeAllowed" : false,
+ "nodeReRegistrationTimeout" : 0,
+ "protocolMappers" : [ {
+ "id" : "59caeba4-d33e-4e4e-975c-4aadad7d3c69",
+ "name" : "full name",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-full-name-mapper",
+ "consentRequired" : true,
+ "consentText" : "${fullName}",
+ "config" : {
+ "id.token.claim" : "true",
+ "access.token.claim" : "true"
+ }
+ }, {
+ "id" : "7249d460-9f90-4cce-9317-9d5f1f1c4c52",
+ "name" : "username",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${username}",
+ "config" : {
+ "user.attribute" : "username",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "preferred_username",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "7fb85282-c1dc-4136-8895-fa9a7505fece",
+ "name" : "family name",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${familyName}",
+ "config" : {
+ "user.attribute" : "lastName",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "family_name",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "fe61f6df-4037-4679-ab4f-26d5e6a29a0a",
+ "name" : "role list",
+ "protocol" : "saml",
+ "protocolMapper" : "saml-role-list-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "single" : "false",
+ "attribute.nameformat" : "Basic",
+ "attribute.name" : "Role"
+ }
+ }, {
+ "id" : "2b941187-4ef1-4576-8fcd-062a4637a154",
+ "name" : "given name",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${givenName}",
+ "config" : {
+ "user.attribute" : "firstName",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "given_name",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "64e23d81-c19b-4966-a83d-644a1db94e4a",
+ "name" : "email",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${email}",
+ "config" : {
+ "user.attribute" : "email",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "email",
+ "jsonType.label" : "String"
+ }
+ } ],
+ "useTemplateConfig" : false,
+ "useTemplateScope" : false,
+ "useTemplateMappers" : false
+ }, {
+ "id" : "23254f13-034e-4aa2-8d11-f475c48c5469",
+ "clientId" : "http://localhost:8380/auth",
+ "surrogateAuthRequired" : false,
+ "enabled" : true,
+ "clientAuthenticatorType" : "client-secret",
+ "secret" : "c2ffb410-6f8b-4f76-a3c7-c5ab21349fa5",
+ "redirectUris" : [ "http://localhost:8380/mellon/postResponse" ],
+ "webOrigins" : [ "http://localhost:8380" ],
+ "notBefore" : 0,
+ "bearerOnly" : false,
+ "consentRequired" : false,
+ "standardFlowEnabled" : true,
+ "implicitFlowEnabled" : false,
+ "directAccessGrantsEnabled" : false,
+ "serviceAccountsEnabled" : false,
+ "publicClient" : false,
+ "frontchannelLogout" : true,
+ "protocol" : "saml",
+ "attributes" : {
+ "saml.assertion.signature" : "true",
+ "saml.force.post.binding" : "true",
+ "saml.multivalued.roles" : "false",
+ "saml.encrypt" : "true",
+ "saml_assertion_consumer_url_post" : "http://localhost:8380/mellon/postResponse",
+ "saml.server.signature" : "true",
+ "saml.signing.certificate" : "MIICrjCCAZYCCQDmdnUguf+VxTANBgkqhkiG9w0BAQsFADAZMRcwFQYDVQQDDA5sb2NhbGhvc3Q6ODM4MDAeFw0xNjAxMTkxMTUwMDdaFw0yNjAxMTgxMTUwMDdaMBkxFzAVBgNVBAMMDmxvY2FsaG9zdDo4MzgwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuissRqhpCBR9nMuoRp+Varx151DKbmdL6NhNxWUOdaYF+fSpNmtG0NsaYV0Coz0Jak/6ap7EfhUeG83vh0G2xj6YTVYtXDVMnUPGmzHprvmFvTOfP4KIVM+1aHcPLfk8ED4ea6TOPDGBjmQw8Y9nZaMATDqEnO8IGaF/Jkl476O3Ek1Nd5yOSday83Or1GkD+ZsZxvyc0CpGJYYaGPrsUFAXekebSlon5SIDerQB7WgABSoGOKDoI8Z+JU/KftwewrE0hr9GZ8HAYBJVt0XfuNSWL7ulmF2HC3RZ877FYk3Vg3KVQs7dyJfK3+V3pGyzOBp/xU61nVZrb0fvua1hWQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQCPR4RhXan28Eq/A6pGfJ29USKLqqDZChYy9q71Zi8hTs4+YYD6wMU8kz+MnTHC/Gf+6XFix7W07XxpFirZ5dkENn7lQUBklBmbxRdB9aW9WfJjx148a/I4+pXZalEIfqpnmWBYt4+/L9exu8tIwj/bshBmuO8Nn4ronTBDgrTCu5feyYO5l12hEdT2d+5rwc/Be66ftl8eOhsr9XJNidjoTVGB3SlHC6v0J7izgS+wT0UxIi3a3gwzW5ZsF4y88iEicAVGmkjgmyJ5GoInQhVhLU2vlxgoULAEWKhF79JYChkGSg8dXAvqBfLm3OCghxj9HldPc8mCn3gMt8F+POZL",
+ "saml_single_logout_service_url_redirect" : "http://localhost:8380/mellon/logout",
+ "saml.signature.algorithm" : "RSA_SHA1",
+ "saml_force_name_id_format" : "false",
+ "saml.client.signature" : "true",
+ "saml.encryption.certificate" : "MIICrjCCAZYCCQDmdnUguf+VxTANBgkqhkiG9w0BAQsFADAZMRcwFQYDVQQDDA5sb2NhbGhvc3Q6ODM4MDAeFw0xNjAxMTkxMTUwMDdaFw0yNjAxMTgxMTUwMDdaMBkxFzAVBgNVBAMMDmxvY2FsaG9zdDo4MzgwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuissRqhpCBR9nMuoRp+Varx151DKbmdL6NhNxWUOdaYF+fSpNmtG0NsaYV0Coz0Jak/6ap7EfhUeG83vh0G2xj6YTVYtXDVMnUPGmzHprvmFvTOfP4KIVM+1aHcPLfk8ED4ea6TOPDGBjmQw8Y9nZaMATDqEnO8IGaF/Jkl476O3Ek1Nd5yOSday83Or1GkD+ZsZxvyc0CpGJYYaGPrsUFAXekebSlon5SIDerQB7WgABSoGOKDoI8Z+JU/KftwewrE0hr9GZ8HAYBJVt0XfuNSWL7ulmF2HC3RZ877FYk3Vg3KVQs7dyJfK3+V3pGyzOBp/xU61nVZrb0fvua1hWQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQCPR4RhXan28Eq/A6pGfJ29USKLqqDZChYy9q71Zi8hTs4+YYD6wMU8kz+MnTHC/Gf+6XFix7W07XxpFirZ5dkENn7lQUBklBmbxRdB9aW9WfJjx148a/I4+pXZalEIfqpnmWBYt4+/L9exu8tIwj/bshBmuO8Nn4ronTBDgrTCu5feyYO5l12hEdT2d+5rwc/Be66ftl8eOhsr9XJNidjoTVGB3SlHC6v0J7izgS+wT0UxIi3a3gwzW5ZsF4y88iEicAVGmkjgmyJ5GoInQhVhLU2vlxgoULAEWKhF79JYChkGSg8dXAvqBfLm3OCghxj9HldPc8mCn3gMt8F+POZL",
+ "saml.authnstatement" : "true",
+ "saml_name_id_format" : "username",
+ "saml_signature_canonicalization_method" : "http://www.w3.org/2001/10/xml-exc-c14n#"
+ },
+ "fullScopeAllowed" : true,
+ "nodeReRegistrationTimeout" : -1,
+ "protocolMappers" : [ {
+ "id" : "e9cc0f08-519b-445f-9134-38811bf94b0c",
+ "name" : "username",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${username}",
+ "config" : {
+ "user.attribute" : "username",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "preferred_username",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "f4663aad-3083-42b0-b6cb-6f88f623a8be",
+ "name" : "full name",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-full-name-mapper",
+ "consentRequired" : true,
+ "consentText" : "${fullName}",
+ "config" : {
+ "id.token.claim" : "true",
+ "access.token.claim" : "true"
+ }
+ }, {
+ "id" : "adb045fd-1f27-41cc-b80f-99592899cef7",
+ "name" : "family name",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${familyName}",
+ "config" : {
+ "user.attribute" : "lastName",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "family_name",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "bcfb2c33-8da8-49ad-9166-cbadd0079bd5",
+ "name" : "given name",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${givenName}",
+ "config" : {
+ "user.attribute" : "firstName",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "given_name",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "0d969f92-4339-427a-9160-94ce11220628",
+ "name" : "email",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${email}",
+ "config" : {
+ "user.attribute" : "email",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "email",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "31edca8e-05fa-492c-b586-e66f12726398",
+ "name" : "role list",
+ "protocol" : "saml",
+ "protocolMapper" : "saml-role-list-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "single" : "false",
+ "attribute.nameformat" : "Basic",
+ "attribute.name" : "Role"
+ }
+ } ],
+ "useTemplateConfig" : false,
+ "useTemplateScope" : false,
+ "useTemplateMappers" : false
+ }, {
+ "id" : "800bbf45-9161-4d0e-96d7-2154d1503614",
+ "clientId" : "security-admin-console",
+ "name" : "${client_security-admin-console}",
+ "baseUrl" : "/auth/admin/mellon-test/console/index.html",
+ "surrogateAuthRequired" : false,
+ "enabled" : true,
+ "clientAuthenticatorType" : "client-secret",
+ "secret" : "19db60e8-86ab-4f91-a743-e421ef151a47",
+ "redirectUris" : [ "/auth/admin/mellon-test/console/*" ],
+ "webOrigins" : [ ],
+ "notBefore" : 0,
+ "bearerOnly" : false,
+ "consentRequired" : false,
+ "standardFlowEnabled" : true,
+ "implicitFlowEnabled" : false,
+ "directAccessGrantsEnabled" : false,
+ "serviceAccountsEnabled" : false,
+ "publicClient" : true,
+ "frontchannelLogout" : false,
+ "attributes" : { },
+ "fullScopeAllowed" : false,
+ "nodeReRegistrationTimeout" : 0,
+ "protocolMappers" : [ {
+ "id" : "09897b3d-d192-4b02-8adc-3d61905ae578",
+ "name" : "role list",
+ "protocol" : "saml",
+ "protocolMapper" : "saml-role-list-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "single" : "false",
+ "attribute.nameformat" : "Basic",
+ "attribute.name" : "Role"
+ }
+ }, {
+ "id" : "a9533551-fab5-4cc0-8454-f29499eddac0",
+ "name" : "full name",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-full-name-mapper",
+ "consentRequired" : true,
+ "consentText" : "${fullName}",
+ "config" : {
+ "id.token.claim" : "true",
+ "access.token.claim" : "true"
+ }
+ }, {
+ "id" : "dc2cfd7c-21f9-4d87-b5b8-57307b79c001",
+ "name" : "given name",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${givenName}",
+ "config" : {
+ "user.attribute" : "firstName",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "given_name",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "2c238326-4f52-44e3-8346-39d9d25ebe1c",
+ "name" : "username",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${username}",
+ "config" : {
+ "user.attribute" : "username",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "preferred_username",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "277023e8-27ae-4a1e-891f-051f2cd23999",
+ "name" : "email",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${email}",
+ "config" : {
+ "user.attribute" : "email",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "email",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "a5400c30-4314-4c80-8252-f0d0450eda94",
+ "name" : "family name",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${familyName}",
+ "config" : {
+ "user.attribute" : "lastName",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "family_name",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "e1c9c4c7-ced3-435e-a904-7a47248518b9",
+ "name" : "locale",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-attribute-mapper",
+ "consentRequired" : false,
+ "consentText" : "${locale}",
+ "config" : {
+ "user.attribute" : "locale",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "locale",
+ "jsonType.label" : "String"
+ }
+ } ],
+ "useTemplateConfig" : false,
+ "useTemplateScope" : false,
+ "useTemplateMappers" : false
+ }, {
+ "id" : "14abd995-d10a-4da3-85cf-0c6fbb65ce41",
+ "clientId" : "admin-cli",
+ "name" : "${client_admin-cli}",
+ "surrogateAuthRequired" : false,
+ "enabled" : true,
+ "clientAuthenticatorType" : "client-secret",
+ "secret" : "dbc029d1-5a61-435b-bc47-a3463b546462",
+ "redirectUris" : [ ],
+ "webOrigins" : [ ],
+ "notBefore" : 0,
+ "bearerOnly" : false,
+ "consentRequired" : false,
+ "standardFlowEnabled" : false,
+ "implicitFlowEnabled" : false,
+ "directAccessGrantsEnabled" : true,
+ "serviceAccountsEnabled" : false,
+ "publicClient" : true,
+ "frontchannelLogout" : false,
+ "attributes" : { },
+ "fullScopeAllowed" : false,
+ "nodeReRegistrationTimeout" : 0,
+ "protocolMappers" : [ {
+ "id" : "e58e8399-8c54-4516-b8af-06205e92448c",
+ "name" : "role list",
+ "protocol" : "saml",
+ "protocolMapper" : "saml-role-list-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "single" : "false",
+ "attribute.nameformat" : "Basic",
+ "attribute.name" : "Role"
+ }
+ }, {
+ "id" : "2297d7b8-aa1f-4e2d-b4ac-a4d3ce9b34e2",
+ "name" : "family name",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${familyName}",
+ "config" : {
+ "user.attribute" : "lastName",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "family_name",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "ed3636fb-7e4f-403d-a5c6-e1c8fbb4a608",
+ "name" : "full name",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-full-name-mapper",
+ "consentRequired" : true,
+ "consentText" : "${fullName}",
+ "config" : {
+ "id.token.claim" : "true",
+ "access.token.claim" : "true"
+ }
+ }, {
+ "id" : "9a5d764d-4583-41e7-9a55-dd517d988b08",
+ "name" : "username",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${username}",
+ "config" : {
+ "user.attribute" : "username",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "preferred_username",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "e21dca0b-c942-4a99-9dc4-6b11cb9fbeae",
+ "name" : "email",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${email}",
+ "config" : {
+ "user.attribute" : "email",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "email",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "8ce17c29-1227-4d21-8dbc-37a316d0cb20",
+ "name" : "given name",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${givenName}",
+ "config" : {
+ "user.attribute" : "firstName",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "given_name",
+ "jsonType.label" : "String"
+ }
+ } ],
+ "useTemplateConfig" : false,
+ "useTemplateScope" : false,
+ "useTemplateMappers" : false
+ }, {
+ "id" : "84ce4461-6b3d-4bd3-b7dc-7201c0c9b106",
+ "clientId" : "broker",
+ "name" : "${client_broker}",
+ "surrogateAuthRequired" : false,
+ "enabled" : true,
+ "clientAuthenticatorType" : "client-secret",
+ "secret" : "5ff75614-1e40-4b65-b4ea-9d7c306687fc",
+ "redirectUris" : [ ],
+ "webOrigins" : [ ],
+ "notBefore" : 0,
+ "bearerOnly" : false,
+ "consentRequired" : false,
+ "standardFlowEnabled" : true,
+ "implicitFlowEnabled" : false,
+ "directAccessGrantsEnabled" : false,
+ "serviceAccountsEnabled" : false,
+ "publicClient" : false,
+ "frontchannelLogout" : false,
+ "attributes" : { },
+ "fullScopeAllowed" : false,
+ "nodeReRegistrationTimeout" : 0,
+ "protocolMappers" : [ {
+ "id" : "5ee11a64-fcea-4db5-97a0-2868d8116f1e",
+ "name" : "family name",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${familyName}",
+ "config" : {
+ "user.attribute" : "lastName",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "family_name",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "ae8b4834-3f3f-4ad3-81ef-6b59c334506c",
+ "name" : "given name",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${givenName}",
+ "config" : {
+ "user.attribute" : "firstName",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "given_name",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "78c32c1f-6eff-491f-b0dd-457bc4c48915",
+ "name" : "username",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${username}",
+ "config" : {
+ "user.attribute" : "username",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "preferred_username",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "aeab583b-e991-4021-99c4-c7fa541f18fc",
+ "name" : "role list",
+ "protocol" : "saml",
+ "protocolMapper" : "saml-role-list-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "single" : "false",
+ "attribute.nameformat" : "Basic",
+ "attribute.name" : "Role"
+ }
+ }, {
+ "id" : "5ad0744f-bdac-43ad-ade1-93a49a65494e",
+ "name" : "full name",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-full-name-mapper",
+ "consentRequired" : true,
+ "consentText" : "${fullName}",
+ "config" : {
+ "id.token.claim" : "true",
+ "access.token.claim" : "true"
+ }
+ }, {
+ "id" : "2748bec5-8df7-4ff7-a675-53487c2a71f8",
+ "name" : "email",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${email}",
+ "config" : {
+ "user.attribute" : "email",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "email",
+ "jsonType.label" : "String"
+ }
+ } ],
+ "useTemplateConfig" : false,
+ "useTemplateScope" : false,
+ "useTemplateMappers" : false
+ }, {
+ "id" : "32558eeb-3ea8-4c8e-acef-250a1d91e844",
+ "clientId" : "account",
+ "name" : "${client_account}",
+ "baseUrl" : "/auth/realms/mellon-test/account",
+ "surrogateAuthRequired" : false,
+ "enabled" : true,
+ "clientAuthenticatorType" : "client-secret",
+ "secret" : "8b9f60f9-f285-4649-8f08-5ad3860a1b77",
+ "defaultRoles" : [ "view-profile", "manage-account" ],
+ "redirectUris" : [ "/auth/realms/mellon-test/account/*" ],
+ "webOrigins" : [ ],
+ "notBefore" : 0,
+ "bearerOnly" : false,
+ "consentRequired" : false,
+ "standardFlowEnabled" : true,
+ "implicitFlowEnabled" : false,
+ "directAccessGrantsEnabled" : false,
+ "serviceAccountsEnabled" : false,
+ "publicClient" : false,
+ "frontchannelLogout" : false,
+ "attributes" : { },
+ "fullScopeAllowed" : false,
+ "nodeReRegistrationTimeout" : 0,
+ "protocolMappers" : [ {
+ "id" : "cfc3c0a2-50b4-4a75-a2e1-e415def6f795",
+ "name" : "email",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${email}",
+ "config" : {
+ "user.attribute" : "email",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "email",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "7b9b559d-b556-48f4-ae77-f8819c490ae3",
+ "name" : "full name",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-full-name-mapper",
+ "consentRequired" : true,
+ "consentText" : "${fullName}",
+ "config" : {
+ "id.token.claim" : "true",
+ "access.token.claim" : "true"
+ }
+ }, {
+ "id" : "3f9d4d7b-c080-4f9f-b0aa-c6dc503f57fc",
+ "name" : "family name",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${familyName}",
+ "config" : {
+ "user.attribute" : "lastName",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "family_name",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "6c633bab-1eab-4201-a71c-88d4f4963004",
+ "name" : "role list",
+ "protocol" : "saml",
+ "protocolMapper" : "saml-role-list-mapper",
+ "consentRequired" : false,
+ "config" : {
+ "single" : "false",
+ "attribute.nameformat" : "Basic",
+ "attribute.name" : "Role"
+ }
+ }, {
+ "id" : "8b659dd2-a506-4c2e-ad09-2ca05bd82f49",
+ "name" : "username",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${username}",
+ "config" : {
+ "user.attribute" : "username",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "preferred_username",
+ "jsonType.label" : "String"
+ }
+ }, {
+ "id" : "db4fd893-e9b6-4162-a737-06084a6c3edf",
+ "name" : "given name",
+ "protocol" : "openid-connect",
+ "protocolMapper" : "oidc-usermodel-property-mapper",
+ "consentRequired" : true,
+ "consentText" : "${givenName}",
+ "config" : {
+ "user.attribute" : "firstName",
+ "id.token.claim" : "true",
+ "access.token.claim" : "true",
+ "claim.name" : "given_name",
+ "jsonType.label" : "String"
+ }
+ } ],
+ "useTemplateConfig" : false,
+ "useTemplateScope" : false,
+ "useTemplateMappers" : false
+ } ],
+ "clientTemplates" : [ ],
+ "browserSecurityHeaders" : {
+ "contentSecurityPolicy" : "frame-src 'self'",
+ "xFrameOptions" : "SAMEORIGIN"
+ },
+ "smtpServer" : { },
+ "eventsEnabled" : true,
+ "eventsListeners" : [ "jboss-logging" ],
+ "enabledEventTypes" : [ "SEND_RESET_PASSWORD", "UPDATE_TOTP", "REMOVE_TOTP", "REVOKE_GRANT", "LOGIN_ERROR", "CLIENT_LOGIN", "RESET_PASSWORD_ERROR", "CODE_TO_TOKEN_ERROR", "CUSTOM_REQUIRED_ACTION", "UPDATE_PROFILE_ERROR", "IMPERSONATE", "LOGIN", "UPDATE_PASSWORD_ERROR", "REGISTER", "LOGOUT", "CLIENT_REGISTER", "UPDATE_PASSWORD", "FEDERATED_IDENTITY_LINK_ERROR", "CLIENT_DELETE", "IDENTITY_PROVIDER_FIRST_LOGIN", "VERIFY_EMAIL", "CLIENT_DELETE_ERROR", "CLIENT_LOGIN_ERROR", "REMOVE_FEDERATED_IDENTITY_ERROR", "EXECUTE_ACTIONS", "SEND_IDENTITY_PROVIDER_LINK_ERROR", "SEND_VERIFY_EMAIL", "EXECUTE_ACTIONS_ERROR", "REMOVE_FEDERATED_IDENTITY", "IDENTITY_PROVIDER_POST_LOGIN", "UPDATE_EMAIL", "REGISTER_ERROR", "LOGOUT_ERROR", "UPDATE_EMAIL_ERROR", "CLIENT_UPDATE_ERROR", "UPDATE_PROFILE", "FEDERATED_IDENTITY_LINK", "CLIENT_REGISTER_ERROR", "SEND_VERIFY_EMAIL_ERROR", "SEND_IDENTITY_PROVIDER_LINK", "RESET_PASSWORD", "REMOVE_TOTP_ERROR", "VERIFY_EMAIL_ERROR", "SEND_RESET_PASSWORD_ERROR", "CLIENT_UPDATE", "IDENTITY_PROVIDER_POST_LOGIN_ERROR", "CUSTOM_REQUIRED_ACTION_ERROR", "UPDATE_TOTP_ERROR", "CODE_TO_TOKEN", "IDENTITY_PROVIDER_FIRST_LOGIN_ERROR" ],
+ "adminEventsEnabled" : false,
+ "adminEventsDetailsEnabled" : false,
+ "internationalizationEnabled" : false,
+ "supportedLocales" : [ ],
+ "authenticationFlows" : [ {
+ "alias" : "Handle Existing Account",
+ "description" : "Handle what to do if there is existing account with same email/username like authenticated identity provider",
+ "providerId" : "basic-flow",
+ "topLevel" : false,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "idp-confirm-link",
+ "autheticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "userSetupAllowed" : false,
+ "priority" : 10
+ }, {
+ "authenticator" : "idp-email-verification",
+ "autheticatorFlow" : false,
+ "requirement" : "ALTERNATIVE",
+ "userSetupAllowed" : false,
+ "priority" : 20
+ }, {
+ "flowAlias" : "Verify Existing Account by Re-authentication",
+ "autheticatorFlow" : true,
+ "requirement" : "ALTERNATIVE",
+ "userSetupAllowed" : false,
+ "priority" : 30
+ } ]
+ }, {
+ "alias" : "Verify Existing Account by Re-authentication",
+ "description" : "Reauthentication of existing account",
+ "providerId" : "basic-flow",
+ "topLevel" : false,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "idp-username-password-form",
+ "autheticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "userSetupAllowed" : false,
+ "priority" : 10
+ }, {
+ "authenticator" : "auth-otp-form",
+ "autheticatorFlow" : false,
+ "requirement" : "OPTIONAL",
+ "userSetupAllowed" : false,
+ "priority" : 20
+ } ]
+ }, {
+ "alias" : "browser",
+ "description" : "browser based authentication",
+ "providerId" : "basic-flow",
+ "topLevel" : true,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "auth-cookie",
+ "autheticatorFlow" : false,
+ "requirement" : "ALTERNATIVE",
+ "userSetupAllowed" : false,
+ "priority" : 10
+ }, {
+ "authenticator" : "auth-spnego",
+ "autheticatorFlow" : false,
+ "requirement" : "DISABLED",
+ "userSetupAllowed" : false,
+ "priority" : 20
+ }, {
+ "flowAlias" : "forms",
+ "autheticatorFlow" : true,
+ "requirement" : "ALTERNATIVE",
+ "userSetupAllowed" : false,
+ "priority" : 30
+ } ]
+ }, {
+ "alias" : "clients",
+ "description" : "Base authentication for clients",
+ "providerId" : "client-flow",
+ "topLevel" : true,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "client-secret",
+ "autheticatorFlow" : false,
+ "requirement" : "ALTERNATIVE",
+ "userSetupAllowed" : false,
+ "priority" : 10
+ }, {
+ "authenticator" : "client-jwt",
+ "autheticatorFlow" : false,
+ "requirement" : "ALTERNATIVE",
+ "userSetupAllowed" : false,
+ "priority" : 20
+ } ]
+ }, {
+ "alias" : "direct grant",
+ "description" : "OpenID Connect Resource Owner Grant",
+ "providerId" : "basic-flow",
+ "topLevel" : true,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "direct-grant-validate-username",
+ "autheticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "userSetupAllowed" : false,
+ "priority" : 10
+ }, {
+ "authenticator" : "direct-grant-validate-password",
+ "autheticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "userSetupAllowed" : false,
+ "priority" : 20
+ }, {
+ "authenticator" : "direct-grant-validate-otp",
+ "autheticatorFlow" : false,
+ "requirement" : "OPTIONAL",
+ "userSetupAllowed" : false,
+ "priority" : 30
+ } ]
+ }, {
+ "alias" : "first broker login",
+ "description" : "Actions taken after first broker login with identity provider account, which is not yet linked to any Keycloak account",
+ "providerId" : "basic-flow",
+ "topLevel" : true,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticatorConfig" : "review profile config",
+ "authenticator" : "idp-review-profile",
+ "autheticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "userSetupAllowed" : false,
+ "priority" : 10
+ }, {
+ "authenticatorConfig" : "create unique user config",
+ "authenticator" : "idp-create-user-if-unique",
+ "autheticatorFlow" : false,
+ "requirement" : "ALTERNATIVE",
+ "userSetupAllowed" : false,
+ "priority" : 20
+ }, {
+ "flowAlias" : "Handle Existing Account",
+ "autheticatorFlow" : true,
+ "requirement" : "ALTERNATIVE",
+ "userSetupAllowed" : false,
+ "priority" : 30
+ } ]
+ }, {
+ "alias" : "forms",
+ "description" : "Username, password, otp and other auth forms.",
+ "providerId" : "basic-flow",
+ "topLevel" : false,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "auth-username-password-form",
+ "autheticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "userSetupAllowed" : false,
+ "priority" : 10
+ }, {
+ "authenticator" : "auth-otp-form",
+ "autheticatorFlow" : false,
+ "requirement" : "OPTIONAL",
+ "userSetupAllowed" : false,
+ "priority" : 20
+ } ]
+ }, {
+ "alias" : "registration",
+ "description" : "registration flow",
+ "providerId" : "basic-flow",
+ "topLevel" : true,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "registration-page-form",
+ "flowAlias" : "registration form",
+ "autheticatorFlow" : true,
+ "requirement" : "REQUIRED",
+ "userSetupAllowed" : false,
+ "priority" : 10
+ } ]
+ }, {
+ "alias" : "registration form",
+ "description" : "registration form",
+ "providerId" : "form-flow",
+ "topLevel" : false,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "registration-user-creation",
+ "autheticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "userSetupAllowed" : false,
+ "priority" : 20
+ }, {
+ "authenticator" : "registration-profile-action",
+ "autheticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "userSetupAllowed" : false,
+ "priority" : 40
+ }, {
+ "authenticator" : "registration-password-action",
+ "autheticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "userSetupAllowed" : false,
+ "priority" : 50
+ }, {
+ "authenticator" : "registration-recaptcha-action",
+ "autheticatorFlow" : false,
+ "requirement" : "DISABLED",
+ "userSetupAllowed" : false,
+ "priority" : 60
+ } ]
+ }, {
+ "alias" : "reset credentials",
+ "description" : "Reset credentials for a user if they forgot their password or something",
+ "providerId" : "basic-flow",
+ "topLevel" : true,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "reset-credentials-choose-user",
+ "autheticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "userSetupAllowed" : false,
+ "priority" : 10
+ }, {
+ "authenticator" : "reset-credential-email",
+ "autheticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "userSetupAllowed" : false,
+ "priority" : 20
+ }, {
+ "authenticator" : "reset-password",
+ "autheticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "userSetupAllowed" : false,
+ "priority" : 30
+ }, {
+ "authenticator" : "reset-otp",
+ "autheticatorFlow" : false,
+ "requirement" : "OPTIONAL",
+ "userSetupAllowed" : false,
+ "priority" : 40
+ } ]
+ }, {
+ "alias" : "saml ecp",
+ "description" : "SAML ECP Profile Authentication Flow",
+ "providerId" : "basic-flow",
+ "topLevel" : true,
+ "builtIn" : true,
+ "authenticationExecutions" : [ {
+ "authenticator" : "http-basic-authenticator",
+ "autheticatorFlow" : false,
+ "requirement" : "REQUIRED",
+ "userSetupAllowed" : false,
+ "priority" : 10
+ } ]
+ } ],
+ "authenticatorConfig" : [ {
+ "alias" : "create unique user config",
+ "config" : {
+ "require.password.update.after.registration" : "false"
+ }
+ }, {
+ "alias" : "review profile config",
+ "config" : {
+ "update.profile.on.first.login" : "missing"
+ }
+ } ],
+ "requiredActions" : [ {
+ "alias" : "CONFIGURE_TOTP",
+ "name" : "Configure Totp",
+ "providerId" : "CONFIGURE_TOTP",
+ "enabled" : true,
+ "defaultAction" : false,
+ "config" : { }
+ }, {
+ "alias" : "UPDATE_PASSWORD",
+ "name" : "Update Password",
+ "providerId" : "UPDATE_PASSWORD",
+ "enabled" : true,
+ "defaultAction" : false,
+ "config" : { }
+ }, {
+ "alias" : "UPDATE_PROFILE",
+ "name" : "Update Profile",
+ "providerId" : "UPDATE_PROFILE",
+ "enabled" : true,
+ "defaultAction" : false,
+ "config" : { }
+ }, {
+ "alias" : "VERIFY_EMAIL",
+ "name" : "Verify Email",
+ "providerId" : "VERIFY_EMAIL",
+ "enabled" : true,
+ "defaultAction" : false,
+ "config" : { }
+ }, {
+ "alias" : "terms_and_conditions",
+ "name" : "Terms and Conditions",
+ "providerId" : "terms_and_conditions",
+ "enabled" : false,
+ "defaultAction" : false,
+ "config" : { }
+ } ],
+ "browserFlow" : "browser",
+ "registrationFlow" : "registration",
+ "directGrantFlow" : "direct grant",
+ "resetCredentialsFlow" : "reset credentials",
+ "clientAuthenticationFlow" : "clients"
+}
\ No newline at end of file
diff --git a/testsuite/integration-arquillian/tests/other/pom.xml b/testsuite/integration-arquillian/tests/other/pom.xml
index 9a925ce369..6b6fefe25f 100644
--- a/testsuite/integration-arquillian/tests/other/pom.xml
+++ b/testsuite/integration-arquillian/tests/other/pom.xml
@@ -117,6 +117,12 @@
console
+
+ mod_auth_mellon
+
+ mod_auth_mellon
+
+
diff --git a/testsuite/integration-arquillian/tests/pom.xml b/testsuite/integration-arquillian/tests/pom.xml
index 8696a96b51..257c4c87f7 100644
--- a/testsuite/integration-arquillian/tests/pom.xml
+++ b/testsuite/integration-arquillian/tests/pom.xml
@@ -35,6 +35,7 @@
10090
10099
false
+ http://localhost:8380
60
phantomjs