arquillian-testsuite added initial version of migration test
This commit is contained in:
parent
480444ffc5
commit
e6620ca005
9 changed files with 1067 additions and 155 deletions
|
@ -1,7 +1,13 @@
|
|||
package org.keycloak.testsuite.arquillian;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.util.LinkedList;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.jboss.arquillian.container.spi.Container;
|
||||
import org.jboss.arquillian.container.spi.ContainerRegistry;
|
||||
import org.jboss.arquillian.container.spi.event.StartSuiteContainers;
|
||||
import org.jboss.arquillian.container.spi.event.StopSuiteContainers;
|
||||
import org.jboss.arquillian.container.test.api.ContainerController;
|
||||
|
@ -37,6 +43,9 @@ public class ContainersTestEnricher {
|
|||
@Inject
|
||||
private Instance<ContainerController> containerController;
|
||||
|
||||
@Inject
|
||||
private Instance<ContainerRegistry> containerRegistry;
|
||||
|
||||
@Inject
|
||||
private Event<StopSuiteContainers> stopSuiteContainers;
|
||||
|
||||
|
@ -62,24 +71,77 @@ public class ContainersTestEnricher {
|
|||
private InstanceProducer<OAuthClient> oauthClient;
|
||||
|
||||
private ContainerController controller;
|
||||
private LinkedList<Container> containers;
|
||||
|
||||
private final boolean migrationTests = System.getProperty("migration", "false").equals("true");
|
||||
private boolean alreadyStopped = false;
|
||||
private boolean init = false;
|
||||
|
||||
private void init() {
|
||||
if (!init) {
|
||||
containers = new LinkedList(containerRegistry.get().getContainers());
|
||||
}
|
||||
init = true;
|
||||
}
|
||||
|
||||
/*
|
||||
* non-javadoc
|
||||
*
|
||||
* Before starting suite containers. Initialization of containers is done
|
||||
* (only once during class life cycle)
|
||||
*/
|
||||
public void startSuiteContainers(@Observes(precedence = 1) StartSuiteContainers event) {
|
||||
init();
|
||||
if (migrationTests) {
|
||||
log.info("\n### Starting keycloak with previous version ###\n");
|
||||
log.info("\n\n### Starting keycloak with previous version ###\n");
|
||||
}
|
||||
}
|
||||
|
||||
public void stopMigrationContainer(@Observes AfterStart event) {
|
||||
/*
|
||||
* non-javadoc
|
||||
*
|
||||
* After start container. Server logs are checked (in case jboss based container).
|
||||
* In case of migration scenario: previous container is stopped.
|
||||
*/
|
||||
public void afterStart(@Observes AfterStart event) throws IOException {
|
||||
if (System.getProperty("check.server.log", "true").equals("true")) {
|
||||
checkServerLog();
|
||||
}
|
||||
|
||||
if (migrationTests && !alreadyStopped) {
|
||||
log.info("\n### Stopping keycloak with previous version ###\n");
|
||||
log.info("\n\n### Stopping keycloak with previous version ###\n");
|
||||
stopSuiteContainers.fire(new StopSuiteContainers());
|
||||
log.info("\n\n### Starting keycloak with current version ###\n");
|
||||
}
|
||||
alreadyStopped = true;
|
||||
}
|
||||
|
||||
/*
|
||||
* non-javadoc
|
||||
*
|
||||
* check server logs (in case jboss based container) whether there are no ERRORs or SEVEREs
|
||||
*/
|
||||
private void checkServerLog() throws IOException {
|
||||
Container container = containers.removeFirst();
|
||||
if (!container.getName().equals("auth-server-undertow")) {
|
||||
String jbossHomePath = container.getContainerConfiguration().getContainerProperties().get("jbossHome");
|
||||
log.debug("jbossHome: " + jbossHomePath + "\n");
|
||||
|
||||
String serverLogContent = FileUtils.readFileToString(new File(jbossHomePath + "/standalone/log/server.log"));
|
||||
|
||||
boolean containsError
|
||||
= serverLogContent.contains("ERROR")
|
||||
|| serverLogContent.contains("SEVERE")
|
||||
|| serverLogContent.contains("Exception ");
|
||||
//There is expected string "Exception" in server log: Adding provider
|
||||
//singleton org.keycloak.services.resources.ModelExceptionMapper
|
||||
|
||||
if (containsError) {
|
||||
throw new RuntimeException(container.getName() + ": Server log contains ERROR.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void beforeSuite(@Observes BeforeSuite event) {
|
||||
suiteContext.set(new SuiteContext());
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ import org.jboss.arquillian.graphene.location.CustomizableURLResourceProvider;
|
|||
import org.jboss.arquillian.test.spi.enricher.resource.ResourceProvider;
|
||||
import org.jboss.arquillian.test.spi.execution.TestExecutionDecider;
|
||||
import org.keycloak.testsuite.arquillian.jira.JiraTestExecutionDecider;
|
||||
import org.keycloak.testsuite.arquillian.migration.MigrationTestExecutionDecider;
|
||||
import org.keycloak.testsuite.arquillian.undertow.CustomUndertowContainer;
|
||||
|
||||
/**
|
||||
|
@ -36,7 +37,8 @@ public class KeycloakArquillianExtension implements LoadableExtension {
|
|||
.service(DeployableContainer.class, CustomUndertowContainer.class);
|
||||
|
||||
builder
|
||||
.service(TestExecutionDecider.class, JiraTestExecutionDecider.class);
|
||||
.service(TestExecutionDecider.class, JiraTestExecutionDecider.class)
|
||||
.service(TestExecutionDecider.class, MigrationTestExecutionDecider.class);
|
||||
|
||||
builder
|
||||
.override(ResourceProvider.class, URLResourceProvider.class, URLProvider.class)
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
/*
|
||||
* JBoss, Home of Professional Open Source.
|
||||
* Copyright 2012, Red Hat, Inc., and individual contributors
|
||||
* as indicated by the @author tags. See the copyright.txt file in the
|
||||
* distribution for a full listing of individual contributors.
|
||||
*
|
||||
* This is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Lesser General Public License as
|
||||
* published by the Free Software Foundation; either version 2.1 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This software is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this software; if not, write to the Free
|
||||
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
|
||||
*/
|
||||
package org.keycloak.testsuite.arquillian.migration;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author <a href="mailto:vramik@redhat.com">Vlastislav Ramik</a>
|
||||
*/
|
||||
@Documented
|
||||
@Retention(RUNTIME)
|
||||
@Target({ElementType.METHOD})
|
||||
public @interface Migration {
|
||||
String versionFrom();
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* JBoss, Home of Professional Open Source.
|
||||
* Copyright 2012, Red Hat, Inc., and individual contributors
|
||||
* as indicated by the @author tags. See the copyright.txt file in the
|
||||
* distribution for a full listing of individual contributors.
|
||||
*
|
||||
* This is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Lesser General Public License as
|
||||
* published by the Free Software Foundation; either version 2.1 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This software is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this software; if not, write to the Free
|
||||
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
|
||||
*/
|
||||
package org.keycloak.testsuite.arquillian.migration;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import org.jboss.arquillian.test.spi.execution.ExecutionDecision;
|
||||
import org.jboss.arquillian.test.spi.execution.TestExecutionDecider;
|
||||
|
||||
/**
|
||||
* @author <a href="mailto:vramik@redhat.com">Vlastislav Ramik</a>
|
||||
*/
|
||||
public class MigrationTestExecutionDecider implements TestExecutionDecider {
|
||||
|
||||
@Override
|
||||
public ExecutionDecision decide(Method method) {
|
||||
|
||||
boolean migrationTest = "true".equals(System.getProperty("migration", "false"));
|
||||
Migration migrationAnnotation = method.getAnnotation(Migration.class);
|
||||
|
||||
if (migrationTest && migrationAnnotation != null) {
|
||||
String versionFrom = migrationAnnotation.versionFrom();
|
||||
String version = System.getProperty("version");
|
||||
|
||||
|
||||
if (version.equals(versionFrom)) {
|
||||
return ExecutionDecision.execute();
|
||||
} else {
|
||||
return ExecutionDecision.dontExecute(method.getName() + "doesn't fit with migration version.");
|
||||
}
|
||||
}
|
||||
if ((migrationTest && migrationAnnotation == null) || (!migrationTest && migrationAnnotation != null)) {
|
||||
return ExecutionDecision.dontExecute("Migration test and no migration annotation or no migration test and migration annotation");
|
||||
}
|
||||
return ExecutionDecision.execute();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int precedence() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
}
|
|
@ -86,6 +86,7 @@ public abstract class AbstractKeycloakTest {
|
|||
driverSettings();
|
||||
|
||||
if (!suiteContext.isAdminPasswordUpdated()) {
|
||||
log.debug("updating admin password");
|
||||
updateMasterAdminPassword();
|
||||
suiteContext.setAdminPasswordUpdated(true);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
/*
|
||||
* JBoss, Home of Professional Open Source.
|
||||
* Copyright 2012, Red Hat, Inc., and individual contributors
|
||||
* as indicated by the @author tags. See the copyright.txt file in the
|
||||
* distribution for a full listing of individual contributors.
|
||||
*
|
||||
* This is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU Lesser General Public License as
|
||||
* published by the Free Software Foundation; either version 2.1 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This software is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this software; if not, write to the Free
|
||||
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
|
||||
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
|
||||
*/
|
||||
package org.keycloak.testsuite.migration;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.keycloak.representations.idm.RealmRepresentation;
|
||||
import org.keycloak.testsuite.AbstractAuthTest;
|
||||
import org.keycloak.testsuite.arquillian.migration.Migration;
|
||||
|
||||
/**
|
||||
* @author <a href="mailto:vramik@redhat.com">Vlastislav Ramik</a>
|
||||
*/
|
||||
public class MigrationTest extends AbstractAuthTest {
|
||||
|
||||
@Test
|
||||
@Migration(versionFrom = "1.6.0.Final")
|
||||
public void migration16Test() {
|
||||
for (RealmRepresentation realm : adminClient.realms().findAll()) {
|
||||
System.out.println(realm.getRealm());
|
||||
}
|
||||
|
||||
throw new RuntimeException("TODO");
|
||||
}
|
||||
|
||||
}
|
|
@ -25,8 +25,16 @@
|
|||
<configuration>
|
||||
<property name="enabled">${migration.kc16}</property>
|
||||
<property name="adapterImplClass">org.jboss.as.arquillian.container.managed.ManagedDeployableContainer</property>
|
||||
<property name="jbossHome">${keycloak-1.6.0.Final.home}</property>
|
||||
<property name="javaVmArguments">-Djboss.socket.binding.port-offset=${auth.server.port.offset} -Xms64m -Xmx512m -XX:MaxPermSize=256m</property>
|
||||
<property name="jbossHome">${keycloak.migration.home}</property>
|
||||
<property name="javaVmArguments">
|
||||
-Dkeycloak.migration.action=import
|
||||
-Dkeycloak.migration.provider=singleFile
|
||||
-Dkeycloak.migration.file=${keycloak.migration.file}
|
||||
-Dkeycloak.migration.strategy=OVERWRITE_EXISTING
|
||||
-Dkeycloak.migration.realmName=Migration
|
||||
-Djboss.socket.binding.port-offset=${auth.server.port.offset}
|
||||
-Xms64m -Xmx512m -XX:MaxPermSize=256m
|
||||
</property>
|
||||
<property name="managementPort">${auth.server.management.port}</property>
|
||||
<property name="startupTimeoutInSeconds">${startup.timeout.sec}</property>
|
||||
</configuration>
|
||||
|
@ -36,7 +44,7 @@
|
|||
<configuration>
|
||||
<property name="enabled">${migration.kc15}</property>
|
||||
<property name="adapterImplClass">org.jboss.as.arquillian.container.managed.ManagedDeployableContainer</property>
|
||||
<property name="jbossHome">${keycloak-1.5.1.Final.home}</property>
|
||||
<property name="jbossHome">${keycloak.migration.homev}</property>
|
||||
<property name="javaVmArguments">-Djboss.socket.binding.port-offset=${auth.server.port.offset} -Xms64m -Xmx512m -XX:MaxPermSize=256m</property>
|
||||
<property name="managementPort">${auth.server.management.port}</property>
|
||||
<property name="startupTimeoutInSeconds">${startup.timeout.sec}</property>
|
||||
|
@ -47,7 +55,7 @@
|
|||
<configuration>
|
||||
<property name="enabled">${migration.kc14}</property>
|
||||
<property name="adapterImplClass">org.jboss.as.arquillian.container.managed.ManagedDeployableContainer</property>
|
||||
<property name="jbossHome">${keycloak-1.4.0.Final.home}</property>
|
||||
<property name="jbossHome">${keycloak.migration.home}</property>
|
||||
<property name="javaVmArguments">-Djboss.socket.binding.port-offset=${auth.server.port.offset} -Xms64m -Xmx512m -XX:MaxPermSize=256m</property>
|
||||
<property name="managementPort">${auth.server.management.port}</property>
|
||||
<property name="startupTimeoutInSeconds">${startup.timeout.sec}</property>
|
||||
|
@ -58,7 +66,7 @@
|
|||
<configuration>
|
||||
<property name="enabled">${migration.kc13}</property>
|
||||
<property name="adapterImplClass">org.jboss.as.arquillian.container.managed.ManagedDeployableContainer</property>
|
||||
<property name="jbossHome">${keycloak-1.3.1.Final.home}</property>
|
||||
<property name="jbossHome">${keycloak.migration.home}</property>
|
||||
<property name="javaVmArguments">-Djboss.socket.binding.port-offset=${auth.server.port.offset} -Xms64m -Xmx512m -XX:MaxPermSize=256m</property>
|
||||
<property name="managementPort">${auth.server.management.port}</property>
|
||||
<property name="startupTimeoutInSeconds">${startup.timeout.sec}</property>
|
||||
|
@ -69,7 +77,7 @@
|
|||
<configuration>
|
||||
<property name="enabled">${migration.kc12}</property>
|
||||
<property name="adapterImplClass">org.jboss.as.arquillian.container.managed.ManagedDeployableContainer</property>
|
||||
<property name="jbossHome">${keycloak-1.2.0.Final.home}</property>
|
||||
<property name="jbossHome">${keycloak.migration.homee}</property>
|
||||
<property name="javaVmArguments">-Djboss.socket.binding.port-offset=${auth.server.port.offset} -Xms64m -Xmx512m -XX:MaxPermSize=256m</property>
|
||||
<property name="managementPort">${auth.server.management.port}</property>
|
||||
<property name="startupTimeoutInSeconds">${startup.timeout.sec}</property>
|
||||
|
|
|
@ -0,0 +1,796 @@
|
|||
{
|
||||
"id" : "Migration",
|
||||
"realm" : "Migration",
|
||||
"notBefore" : 0,
|
||||
"revokeRefreshToken" : false,
|
||||
"accessTokenLifespan" : 300,
|
||||
"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" : "MIIEogIBAAKCAQEArQLywI66vQOLm7qtYOTgyZAiKegCPnLM89Rb6ta4aktJ2eOc46yMXe7q6Cu0TiItABjeur3YMqYpWRLdUTBFkh5ZIQINtihiB57bCO7FCQB008a0yJLePyfljfRJ6l1MHyLGOGhPH8FNtw2urGpD+J59aApDzKercCFrdOz4A8sGT2NP+q8Bb/BJOb6XgkE/b9e3G4nvlxSVSxXKNgA+XOYGeLRuDzDp391F/rx5Nm/utCrKTakP5YC2jFNccv9XXMr/S6GIAb7Z1B7QZaP+snrIa06mF6LO+KsHRb1EYYIt/2jMw/buz/HxwIq43/bJMvI2GqFZKxRIT3X5KEzaeQIDAQABAoIBAGv43w6VBK1ZPRNfGTzTGgYw0WFdzaizdHznFsYkYsrTWa+FgTAFS0SECk4CmG/6nCLnYnkgaYCSelOAlmZIveJG1lDnOy9nXGZtGT0l5gmMI1zXMZPLNLAtcfF5d3ev6gW0aghh8J9cv+dxvoUTfH/4SUNYxJ9ANJmyAaHjEZUrY6JyiLqCo1y+iYyYRmmhYbj6qU6ld1mOVvWOF4ZFWKJ1ZCxWf9cUMpzphBQVqrBOW/OqOv6F7MotwBrRW8K/rnIq7sfO//+6RXMMmdCSseprBHWKC6NkS822lPSA3Co0j6TwL54cOrw7W7iEzY9WanyHQNiBnTyPqGmIXGwBnAECgYEA5FTYZTb2yLSo41LBPbvH2aRje+/yEESPTz+O60y6T3ZED8yzoGfyJd3OBkuNKEwFCztM0sZdyRvSJKXxyWCW+RwZ8JHRtYr476DGO6e/ZqW4IQuLGTwsExvbZGuYotrF1Eeyhy3TtEkkDuEsK5wwW+OMUkGcJpoEN8DGlROcJqECgYEAwfoA2E5TnM6YZwJktVKOQdoyvvSFLrhCUoOSNKJwYJGSBhVqdP0SFvKWCkL8DHP8zPn+GOw2DLokrby2Ac72XmQvXJKeRpeOk5C+uancRCUdfm+Fc6+5ownjH32LzYvwVw3qEbidM7a2GgdzJNxmGXgL8x8h9ClhWkhtaDWmnNkCgYBA2QwAawTZ6d1Req5hTxSqbnLGv1X7Ys1kz4NStp7vdIJODnAxrXPrZzxdM1XqzPRdxUDDWA1I0br0J6Es9V7Lbzy6w19Q9SBQRlQmmzTT/Vr3H6UozJsj7jR4J8rY7dNjv90nYU+QE3nHNBJsbFabslum/PVRTUrHXtvHeSNPIQKBgFhI9QF+BMglr2+Sw0tTm7OVH+uRVtyAuI7dmzmhhQwutQtXy/AbDpSrLGbXPehdEf4o+eFWAPOh9PeuIBiKnc8wQe4cPTVb3WSESIowKTRKwDW/hDm3DQKLiXfXqD2RJ343swUFxWa4DgGiymFIfp+w559r2ARMoSZ6OHFpmb9hAoGAKd4lA9rz7YRbL0S2dFjbZ2BLVZpjb8rvR1VQQuCGYxqlLkWlrSeiuhkqMyaUtL0PRuEcXrcobHV/IXrYq2WoWItmVCnWq2Wx7pmEa4HYJhhmIQXAthU0USWY77zEagpeTB+VPV8CpwLEsKQqhQeNkepxEI9fMYEYpwUo6bzDyeA=",
|
||||
"publicKey" : "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArQLywI66vQOLm7qtYOTgyZAiKegCPnLM89Rb6ta4aktJ2eOc46yMXe7q6Cu0TiItABjeur3YMqYpWRLdUTBFkh5ZIQINtihiB57bCO7FCQB008a0yJLePyfljfRJ6l1MHyLGOGhPH8FNtw2urGpD+J59aApDzKercCFrdOz4A8sGT2NP+q8Bb/BJOb6XgkE/b9e3G4nvlxSVSxXKNgA+XOYGeLRuDzDp391F/rx5Nm/utCrKTakP5YC2jFNccv9XXMr/S6GIAb7Z1B7QZaP+snrIa06mF6LO+KsHRb1EYYIt/2jMw/buz/HxwIq43/bJMvI2GqFZKxRIT3X5KEzaeQIDAQAB",
|
||||
"certificate" : "MIICoTCCAYkCBgFQjuc8LjANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDDAlNaWdyYXRpb24wHhcNMTUxMDIyMDkzMzUwWhcNMjUxMDIyMDkzNTMwWjAUMRIwEAYDVQQDDAlNaWdyYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtAvLAjrq9A4ubuq1g5ODJkCIp6AI+cszz1Fvq1rhqS0nZ45zjrIxd7uroK7ROIi0AGN66vdgypilZEt1RMEWSHlkhAg22KGIHntsI7sUJAHTTxrTIkt4/J+WN9EnqXUwfIsY4aE8fwU23Da6sakP4nn1oCkPMp6twIWt07PgDywZPY0/6rwFv8Ek5vpeCQT9v17cbie+XFJVLFco2AD5c5gZ4tG4PMOnf3UX+vHk2b+60KspNqQ/lgLaMU1xy/1dcyv9LoYgBvtnUHtBlo/6yeshrTqYXos74qwdFvURhgi3/aMzD9u7P8fHAirjf9sky8jYaoVkrFEhPdfkoTNp5AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAE6l3lMPlWPOgE6TFj/fJvCa5OH3exKdvN1mofiq3VmNRoxyPWcehezS0SvKjWvF79QXMHLidH4Wr8IDrc8JS5YrCy1GVwGcJecwZpoMgqeaJ0UcfWgDz6+n+uaXZ49kNZH0CD1zoxHc1A49AlGQMO4jd517lfwjyuKl1DbWymmplvOmE8PKGaDTMyohwJlvoZbAs3BNhHss5IIyfGESyYYG98tRfKdIvddZOBfTp1rbXzr8oE+bgJKlGuX+oun67jfdNuYC+2f7bzTkqeSF215T6aA0j1oAxEIlmBBsIiiGEre2Xk3Lr+/itNKBZPJv92GbTmcNq/EpLhvEMz0s84o=",
|
||||
"codeSecret" : "5a609b38-3b83-482b-b2f1-d0289f21b6a2",
|
||||
"roles" : {
|
||||
"realm" : [ {
|
||||
"id" : "748f1d8c-5f0a-4bce-a3b1-096360252e3f",
|
||||
"name" : "offline_access",
|
||||
"description" : "${role_offline-access}",
|
||||
"scopeParamRequired" : true,
|
||||
"composite" : false
|
||||
} ],
|
||||
"client" : {
|
||||
"realm-management" : [ {
|
||||
"id" : "9b4e8326-cc09-4d3d-ac48-f4b9576c9da2",
|
||||
"name" : "manage-realm",
|
||||
"description" : "${role_manage-realm}",
|
||||
"scopeParamRequired" : false,
|
||||
"composite" : false
|
||||
}, {
|
||||
"id" : "2283a92b-dcc3-4c6e-be62-140d27500115",
|
||||
"name" : "view-realm",
|
||||
"description" : "${role_view-realm}",
|
||||
"scopeParamRequired" : false,
|
||||
"composite" : false
|
||||
}, {
|
||||
"id" : "5a6653ea-91a9-4c15-9f6f-ed84970afd78",
|
||||
"name" : "manage-events",
|
||||
"description" : "${role_manage-events}",
|
||||
"scopeParamRequired" : false,
|
||||
"composite" : false
|
||||
}, {
|
||||
"id" : "61b3467d-d0db-4fa2-9241-17096961744d",
|
||||
"name" : "manage-users",
|
||||
"description" : "${role_manage-users}",
|
||||
"scopeParamRequired" : false,
|
||||
"composite" : false
|
||||
}, {
|
||||
"id" : "52741497-a533-4d23-b989-0054b961c8b2",
|
||||
"name" : "impersonation",
|
||||
"description" : "${role_impersonation}",
|
||||
"scopeParamRequired" : false,
|
||||
"composite" : false
|
||||
}, {
|
||||
"id" : "0744e5e8-ce96-4dbb-9eca-a3a1cb3a5903",
|
||||
"name" : "view-identity-providers",
|
||||
"description" : "${role_view-identity-providers}",
|
||||
"scopeParamRequired" : false,
|
||||
"composite" : false
|
||||
}, {
|
||||
"id" : "d1877efa-4bdd-4378-923a-fd1f8bd6ce71",
|
||||
"name" : "manage-clients",
|
||||
"description" : "${role_manage-clients}",
|
||||
"scopeParamRequired" : false,
|
||||
"composite" : false
|
||||
}, {
|
||||
"id" : "c0041a9a-38d2-41a7-a886-f47dcec2f49b",
|
||||
"name" : "manage-identity-providers",
|
||||
"description" : "${role_manage-identity-providers}",
|
||||
"scopeParamRequired" : false,
|
||||
"composite" : false
|
||||
}, {
|
||||
"id" : "e4fbf986-956b-4b6e-ba9a-0c2a604c5f0a",
|
||||
"name" : "realm-admin",
|
||||
"description" : "${role_realm-admin}",
|
||||
"scopeParamRequired" : false,
|
||||
"composite" : true,
|
||||
"composites" : {
|
||||
"client" : {
|
||||
"realm-management" : [ "view-clients", "manage-realm", "view-realm", "manage-events", "view-events", "manage-users", "impersonation", "view-users", "view-identity-providers", "manage-clients", "create-client", "manage-identity-providers" ]
|
||||
}
|
||||
}
|
||||
}, {
|
||||
"id" : "c2786492-d49c-4893-807b-274b4eb6ec54",
|
||||
"name" : "view-clients",
|
||||
"description" : "${role_view-clients}",
|
||||
"scopeParamRequired" : false,
|
||||
"composite" : false
|
||||
}, {
|
||||
"id" : "fa92320c-3f12-44b3-b61f-3c5dacec755c",
|
||||
"name" : "view-events",
|
||||
"description" : "${role_view-events}",
|
||||
"scopeParamRequired" : false,
|
||||
"composite" : false
|
||||
}, {
|
||||
"id" : "033e98f0-21a1-44c8-a71d-03be8126c615",
|
||||
"name" : "view-users",
|
||||
"description" : "${role_view-users}",
|
||||
"scopeParamRequired" : false,
|
||||
"composite" : false
|
||||
}, {
|
||||
"id" : "c33f11a9-c82a-4218-a29f-a57c89d094b7",
|
||||
"name" : "create-client",
|
||||
"description" : "${role_create-client}",
|
||||
"scopeParamRequired" : false,
|
||||
"composite" : false
|
||||
} ],
|
||||
"security-admin-console" : [ ],
|
||||
"broker" : [ {
|
||||
"id" : "e57662f2-0206-4103-bfba-db54433d53f7",
|
||||
"name" : "read-token",
|
||||
"description" : "${role_read-token}",
|
||||
"scopeParamRequired" : false,
|
||||
"composite" : false
|
||||
} ],
|
||||
"account" : [ {
|
||||
"id" : "b15e3ee9-033e-48d1-b9b0-267afa93f3c9",
|
||||
"name" : "manage-account",
|
||||
"description" : "${role_manage-account}",
|
||||
"scopeParamRequired" : false,
|
||||
"composite" : false
|
||||
}, {
|
||||
"id" : "686afa3d-4a43-43f1-9b17-b92d152944d2",
|
||||
"name" : "view-profile",
|
||||
"description" : "${role_view-profile}",
|
||||
"scopeParamRequired" : false,
|
||||
"composite" : false
|
||||
} ]
|
||||
}
|
||||
},
|
||||
"defaultRoles" : [ "offline_access" ],
|
||||
"requiredCredentials" : [ "password" ],
|
||||
"otpPolicyType" : "totp",
|
||||
"otpPolicyAlgorithm" : "HmacSHA1",
|
||||
"otpPolicyInitialCounter" : 0,
|
||||
"otpPolicyDigits" : 6,
|
||||
"otpPolicyLookAheadWindow" : 1,
|
||||
"otpPolicyPeriod" : 30,
|
||||
"clientScopeMappings" : {
|
||||
"realm-management" : [ {
|
||||
"client" : "security-admin-console",
|
||||
"roles" : [ "realm-admin" ]
|
||||
} ]
|
||||
},
|
||||
"clients" : [ {
|
||||
"id" : "3793af8e-47ec-47b2-ac31-3cb813c395b8",
|
||||
"clientId" : "realm-management",
|
||||
"name" : "${client_realm-management}",
|
||||
"surrogateAuthRequired" : false,
|
||||
"enabled" : true,
|
||||
"clientAuthenticatorType" : "client-secret",
|
||||
"secret" : "1d5f503f-dc13-45e3-8b4f-e541743f7291",
|
||||
"redirectUris" : [ ],
|
||||
"webOrigins" : [ ],
|
||||
"notBefore" : 0,
|
||||
"bearerOnly" : true,
|
||||
"consentRequired" : false,
|
||||
"serviceAccountsEnabled" : false,
|
||||
"directGrantsOnly" : false,
|
||||
"publicClient" : false,
|
||||
"frontchannelLogout" : false,
|
||||
"attributes" : { },
|
||||
"fullScopeAllowed" : false,
|
||||
"nodeReRegistrationTimeout" : 0,
|
||||
"protocolMappers" : [ {
|
||||
"id" : "f232fbdf-b7fb-4b1d-b2e9-f54e3470bc7c",
|
||||
"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" : "8171f547-4738-4aeb-837e-cbfc7d0cc017",
|
||||
"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" : "d9ca8f34-270d-4f9f-a6ff-320e57689a0a",
|
||||
"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" : "a9a237e8-134d-4fc2-b41d-3b7f4023d7f8",
|
||||
"name" : "role list",
|
||||
"protocol" : "saml",
|
||||
"protocolMapper" : "saml-role-list-mapper",
|
||||
"consentRequired" : false,
|
||||
"config" : {
|
||||
"single" : "false",
|
||||
"attribute.nameformat" : "Basic",
|
||||
"attribute.name" : "Role"
|
||||
}
|
||||
}, {
|
||||
"id" : "ef97b539-b493-4081-ae84-ac6ce162f24b",
|
||||
"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" : "ea669796-f1c5-41e3-a635-f4c2cd537cf1",
|
||||
"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" : "1487423c-d03e-464e-aa8e-4db48c6b9977",
|
||||
"clientId" : "security-admin-console",
|
||||
"name" : "${client_security-admin-console}",
|
||||
"baseUrl" : "/auth/admin/Migration/console/index.html",
|
||||
"surrogateAuthRequired" : false,
|
||||
"enabled" : true,
|
||||
"clientAuthenticatorType" : "client-secret",
|
||||
"secret" : "799f2249-0b27-4d8d-8bff-c8ed8ee98fcf",
|
||||
"redirectUris" : [ "/auth/admin/Migration/console/*" ],
|
||||
"webOrigins" : [ ],
|
||||
"notBefore" : 0,
|
||||
"bearerOnly" : false,
|
||||
"consentRequired" : false,
|
||||
"serviceAccountsEnabled" : false,
|
||||
"directGrantsOnly" : false,
|
||||
"publicClient" : true,
|
||||
"frontchannelLogout" : false,
|
||||
"attributes" : { },
|
||||
"fullScopeAllowed" : false,
|
||||
"nodeReRegistrationTimeout" : 0,
|
||||
"protocolMappers" : [ {
|
||||
"id" : "bc58f583-70f1-47a9-b64c-edd91e34a9d2",
|
||||
"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" : "222cd811-48b6-4f67-a959-42ef4b5422dd",
|
||||
"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" : "4dcc8851-7f55-4ac2-a840-455789b5f012",
|
||||
"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"
|
||||
}
|
||||
}, {
|
||||
"id" : "4d536574-fa9b-40a2-aed3-8fe647ea3a2b",
|
||||
"name" : "role list",
|
||||
"protocol" : "saml",
|
||||
"protocolMapper" : "saml-role-list-mapper",
|
||||
"consentRequired" : false,
|
||||
"config" : {
|
||||
"single" : "false",
|
||||
"attribute.nameformat" : "Basic",
|
||||
"attribute.name" : "Role"
|
||||
}
|
||||
}, {
|
||||
"id" : "36c6275c-fc00-4511-b1f2-b0a0db25c3c7",
|
||||
"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" : "826950eb-8d2d-42ae-b2fa-df2d98cf09f8",
|
||||
"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" : "b50a73f8-4f50-4cd0-8fdf-a23c59103bfc",
|
||||
"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" : "57690443-ad65-4198-ba24-73e0a9f0968c",
|
||||
"clientId" : "broker",
|
||||
"name" : "${client_broker}",
|
||||
"surrogateAuthRequired" : false,
|
||||
"enabled" : true,
|
||||
"clientAuthenticatorType" : "client-secret",
|
||||
"secret" : "633b0791-2877-4fba-9b99-32a793ced077",
|
||||
"redirectUris" : [ ],
|
||||
"webOrigins" : [ ],
|
||||
"notBefore" : 0,
|
||||
"bearerOnly" : false,
|
||||
"consentRequired" : false,
|
||||
"serviceAccountsEnabled" : false,
|
||||
"directGrantsOnly" : false,
|
||||
"publicClient" : false,
|
||||
"frontchannelLogout" : false,
|
||||
"attributes" : { },
|
||||
"fullScopeAllowed" : false,
|
||||
"nodeReRegistrationTimeout" : 0,
|
||||
"protocolMappers" : [ {
|
||||
"id" : "bdc92df4-9053-4651-9a95-4a36cc825b94",
|
||||
"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" : "7a90d6af-b6a6-4d59-82fe-7c6b6206a3a8",
|
||||
"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" : "24179c32-d778-4ab9-a32c-305832e3581e",
|
||||
"name" : "role list",
|
||||
"protocol" : "saml",
|
||||
"protocolMapper" : "saml-role-list-mapper",
|
||||
"consentRequired" : false,
|
||||
"config" : {
|
||||
"single" : "false",
|
||||
"attribute.nameformat" : "Basic",
|
||||
"attribute.name" : "Role"
|
||||
}
|
||||
}, {
|
||||
"id" : "30903d54-a53c-4238-9258-3aec427adc71",
|
||||
"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" : "2dcc7b59-4a56-4e71-a763-5853a58fb3d1",
|
||||
"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" : "f997c17d-e6a5-4bf1-a40a-0f240fd0e3f3",
|
||||
"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" : "dba6eddb-ad7f-46d7-8f69-c4b56b32566e",
|
||||
"clientId" : "account",
|
||||
"name" : "${client_account}",
|
||||
"baseUrl" : "/auth/realms/Migration/account",
|
||||
"surrogateAuthRequired" : false,
|
||||
"enabled" : true,
|
||||
"clientAuthenticatorType" : "client-secret",
|
||||
"secret" : "6b602649-f42f-43bb-a2f0-c02043872cdc",
|
||||
"defaultRoles" : [ "view-profile", "manage-account" ],
|
||||
"redirectUris" : [ "/auth/realms/Migration/account/*" ],
|
||||
"webOrigins" : [ ],
|
||||
"notBefore" : 0,
|
||||
"bearerOnly" : false,
|
||||
"consentRequired" : false,
|
||||
"serviceAccountsEnabled" : false,
|
||||
"directGrantsOnly" : false,
|
||||
"publicClient" : false,
|
||||
"frontchannelLogout" : false,
|
||||
"attributes" : { },
|
||||
"fullScopeAllowed" : false,
|
||||
"nodeReRegistrationTimeout" : 0,
|
||||
"protocolMappers" : [ {
|
||||
"id" : "47990dfe-a600-4301-bbfb-f41ab94b9dff",
|
||||
"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" : "8a8e1c9e-9fff-4418-8941-66a77842bce7",
|
||||
"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" : "581a2aef-ef7b-4a5a-95fe-f59b0c7e95a0",
|
||||
"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" : "8713a65f-f602-4973-9719-6b9ae792fb39",
|
||||
"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" : "0f49eaee-4fd2-48da-9ca3-60f33f26b101",
|
||||
"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" : "964acb2b-9e6b-42e8-8f8d-382ac32a9da8",
|
||||
"name" : "role list",
|
||||
"protocol" : "saml",
|
||||
"protocolMapper" : "saml-role-list-mapper",
|
||||
"consentRequired" : false,
|
||||
"config" : {
|
||||
"single" : "false",
|
||||
"attribute.nameformat" : "Basic",
|
||||
"attribute.name" : "Role"
|
||||
}
|
||||
} ]
|
||||
} ],
|
||||
"browserSecurityHeaders" : {
|
||||
"contentSecurityPolicy" : "frame-src 'self'",
|
||||
"xFrameOptions" : "SAMEORIGIN"
|
||||
},
|
||||
"smtpServer" : { },
|
||||
"eventsEnabled" : false,
|
||||
"eventsListeners" : [ "jboss-logging" ],
|
||||
"enabledEventTypes" : [ ],
|
||||
"adminEventsEnabled" : false,
|
||||
"adminEventsDetailsEnabled" : false,
|
||||
"identityFederationEnabled" : false,
|
||||
"internationalizationEnabled" : false,
|
||||
"supportedLocales" : [ ],
|
||||
"authenticationFlows" : [ {
|
||||
"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" : "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" : "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" : "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" : "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" : "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
|
||||
} ]
|
||||
} ],
|
||||
"authenticatorConfig" : [ ],
|
||||
"requiredActions" : [ {
|
||||
"alias" : "terms_and_conditions",
|
||||
"name" : "Terms and Conditions",
|
||||
"providerId" : "terms_and_conditions",
|
||||
"enabled" : false,
|
||||
"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" : "CONFIGURE_TOTP",
|
||||
"name" : "Configure Totp",
|
||||
"providerId" : "CONFIGURE_TOTP",
|
||||
"enabled" : true,
|
||||
"defaultAction" : false,
|
||||
"config" : { }
|
||||
}, {
|
||||
"alias" : "VERIFY_EMAIL",
|
||||
"name" : "Verify Email",
|
||||
"providerId" : "VERIFY_EMAIL",
|
||||
"enabled" : true,
|
||||
"defaultAction" : false,
|
||||
"config" : { }
|
||||
} ],
|
||||
"browserFlow" : "browser",
|
||||
"registrationFlow" : "registration",
|
||||
"directGrantFlow" : "direct grant",
|
||||
"resetCredentialsFlow" : "reset credentials",
|
||||
"clientAuthenticationFlow" : "clients"
|
||||
}
|
|
@ -96,6 +96,31 @@
|
|||
<failIfNoTests>false</failIfNoTests>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>unpack-previous</id>
|
||||
<phase>generate-test-resources</phase>
|
||||
<goals>
|
||||
<goal>unpack</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>org.keycloak.testsuite</groupId>
|
||||
<artifactId>${server.artifactId}</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>zip</type>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
<outputDirectory>${containers.home}</outputDirectory>
|
||||
<overWriteIfNewer>true</overWriteIfNewer>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
|
@ -348,7 +373,6 @@
|
|||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>2.10</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>unpack</id>
|
||||
|
@ -409,7 +433,6 @@
|
|||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>2.10</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>unpack</id>
|
||||
|
@ -454,37 +477,12 @@
|
|||
<profile>
|
||||
<id>migration-kc16</id>
|
||||
<properties>
|
||||
<keycloak-1.6.0.Final.home>${containers.home}/keycloak-1.6.0.Final</keycloak-1.6.0.Final.home>
|
||||
<server.version>1.6.0.Final</server.version>
|
||||
<server.artifactId>integration-arquillian-server-wildfly-kc16</server.artifactId>
|
||||
</properties>
|
||||
<build>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>2.10</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>unpack-previous</id>
|
||||
<phase>generate-test-resources</phase>
|
||||
<goals>
|
||||
<goal>unpack</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>org.keycloak.testsuite</groupId>
|
||||
<artifactId>integration-arquillian-server-wildfly-kc16</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>zip</type>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
<outputDirectory>${containers.home}</outputDirectory>
|
||||
<overWriteIfNewer>true</overWriteIfNewer>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
|
@ -492,8 +490,9 @@
|
|||
<systemPropertyVariables>
|
||||
<migration>true</migration>
|
||||
<migration.kc16>true</migration.kc16>
|
||||
<keycloak-1.6.0.Final.home>${keycloak-1.6.0.Final.home}</keycloak-1.6.0.Final.home>
|
||||
<keycloak.migration.home>${containers.home}/keycloak-${server.version}</keycloak.migration.home>
|
||||
<keycloak.migration.file>src/test/resources/migration-test/migration-realm-16.json</keycloak.migration.file>
|
||||
<version>${server.version}</version>
|
||||
</systemPropertyVariables>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
@ -505,37 +504,12 @@
|
|||
<profile>
|
||||
<id>migration-kc15</id>
|
||||
<properties>
|
||||
<keycloak-1.5.1.Final.home>${containers.home}/keycloak-1.5.1.Final</keycloak-1.5.1.Final.home>
|
||||
<server.version>1.5.1.Final</server.version>
|
||||
<server.artifactId>integration-arquillian-server-wildfly-kc15</server.artifactId>
|
||||
</properties>
|
||||
<build>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>2.10</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>unpack-previous</id>
|
||||
<phase>generate-test-resources</phase>
|
||||
<goals>
|
||||
<goal>unpack</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>org.keycloak.testsuite</groupId>
|
||||
<artifactId>integration-arquillian-server-wildfly-kc15</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>zip</type>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
<outputDirectory>${containers.home}</outputDirectory>
|
||||
<overWriteIfNewer>true</overWriteIfNewer>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
|
@ -543,7 +517,7 @@
|
|||
<systemPropertyVariables>
|
||||
<migration>true</migration>
|
||||
<migration.kc15>true</migration.kc15>
|
||||
<keycloak-1.5.1.Final.home>${keycloak-1.5.1.Final.home}</keycloak-1.5.1.Final.home>
|
||||
<keycloak.migration.home>${containers.home}/keycloak-${server.version}</keycloak.migration.home>
|
||||
</systemPropertyVariables>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
@ -555,37 +529,12 @@
|
|||
<profile>
|
||||
<id>migration-kc14</id>
|
||||
<properties>
|
||||
<keycloak-1.4.0.Final.home>${containers.home}/keycloak-1.4.0.Final</keycloak-1.4.0.Final.home>
|
||||
<server.version>1.4.0.Final</server.version>
|
||||
<server.artifactId>integration-arquillian-server-wildfly-kc14</server.artifactId>
|
||||
</properties>
|
||||
<build>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>2.10</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>unpack-previous</id>
|
||||
<phase>generate-test-resources</phase>
|
||||
<goals>
|
||||
<goal>unpack</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>org.keycloak.testsuite</groupId>
|
||||
<artifactId>integration-arquillian-server-wildfly-kc14</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>zip</type>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
<outputDirectory>${containers.home}</outputDirectory>
|
||||
<overWriteIfNewer>true</overWriteIfNewer>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
|
@ -593,7 +542,7 @@
|
|||
<systemPropertyVariables>
|
||||
<migration>true</migration>
|
||||
<migration.kc14>true</migration.kc14>
|
||||
<keycloak-1.4.0.Final.home>${keycloak-1.4.0.Final.home}</keycloak-1.4.0.Final.home>
|
||||
<keycloak.migration.home>${containers.home}/keycloak-${server.version}</keycloak.migration.home>
|
||||
</systemPropertyVariables>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
@ -605,37 +554,12 @@
|
|||
<profile>
|
||||
<id>migration-kc13</id>
|
||||
<properties>
|
||||
<keycloak-1.3.1.Final.home>${containers.home}/keycloak-1.3.1.Final</keycloak-1.3.1.Final.home>
|
||||
<server.version>1.3.1.Final</server.version>
|
||||
<server.artifactId>integration-arquillian-server-wildfly-kc13</server.artifactId>
|
||||
</properties>
|
||||
<build>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>2.10</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>unpack-previous</id>
|
||||
<phase>generate-test-resources</phase>
|
||||
<goals>
|
||||
<goal>unpack</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>org.keycloak.testsuite</groupId>
|
||||
<artifactId>integration-arquillian-server-wildfly-kc13</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>zip</type>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
<outputDirectory>${containers.home}</outputDirectory>
|
||||
<overWriteIfNewer>true</overWriteIfNewer>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
|
@ -643,7 +567,7 @@
|
|||
<systemPropertyVariables>
|
||||
<migration>true</migration>
|
||||
<migration.kc13>true</migration.kc13>
|
||||
<keycloak-1.3.1.Final.home>${keycloak-1.3.1.Final.home}</keycloak-1.3.1.Final.home>
|
||||
<keycloak.migration.home>${containers.home}/keycloak-${server.version}</keycloak.migration.home>
|
||||
</systemPropertyVariables>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
@ -655,37 +579,12 @@
|
|||
<profile>
|
||||
<id>migration-kc12</id>
|
||||
<properties>
|
||||
<keycloak-1.2.0.Final.home>${containers.home}/keycloak-1.2.0.Final</keycloak-1.2.0.Final.home>
|
||||
<server.version>1.2.0.Final</server.version>
|
||||
<server.artifactId>integration-arquillian-server-wildfly-kc12</server.artifactId>
|
||||
</properties>
|
||||
<build>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-dependency-plugin</artifactId>
|
||||
<version>2.10</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>unpack-previous</id>
|
||||
<phase>generate-test-resources</phase>
|
||||
<goals>
|
||||
<goal>unpack</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>org.keycloak.testsuite</groupId>
|
||||
<artifactId>integration-arquillian-server-wildfly-kc12</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>zip</type>
|
||||
</artifactItem>
|
||||
</artifactItems>
|
||||
<outputDirectory>${containers.home}</outputDirectory>
|
||||
<overWriteIfNewer>true</overWriteIfNewer>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
|
@ -693,7 +592,7 @@
|
|||
<systemPropertyVariables>
|
||||
<migration>true</migration>
|
||||
<migration.kc12>true</migration.kc12>
|
||||
<keycloak-1.2.0.Final.home>${keycloak-1.2.0.Final.home}</keycloak-1.2.0.Final.home>
|
||||
<keycloak.migration.home>${containers.home}/keycloak-${server.version}</keycloak.migration.home>
|
||||
</systemPropertyVariables>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
|
Loading…
Reference in a new issue