keycloak-uncached
Changes
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/OAuthClient.java 13(+9 -4)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/ApiUtil.java 10(+10 -0)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/oauth/OAuthGrantTest.java 214(+98 -116)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/util/ClientManager.java 23(+23 -0)
testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/util/ProtocolMapperUtil.java 13(+13 -0)
Details
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/OAuthClient.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/OAuthClient.java
index bc70236..c0088a1 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/OAuthClient.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/util/OAuthClient.java
@@ -122,10 +122,15 @@ public class OAuthClient {
public void doLoginGrant(String username, String password) {
openLoginForm();
-
- driver.findElement(By.id("username")).sendKeys(username);
- driver.findElement(By.id("password")).sendKeys(password);
- driver.findElement(By.name("login")).click();
+ String src = driver.getPageSource();
+ try {
+ driver.findElement(By.id("username")).sendKeys(username);
+ driver.findElement(By.id("password")).sendKeys(password);
+ driver.findElement(By.name("login")).click();
+ } catch (Throwable t) {
+ System.err.println(src);
+ throw t;
+ }
}
public AccessTokenResponse doAccessTokenRequest(String code, String password) {
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/ApiUtil.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/ApiUtil.java
index 73946ff..4f1a74d 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/ApiUtil.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/admin/ApiUtil.java
@@ -23,6 +23,7 @@ import org.keycloak.admin.client.resource.RoleResource;
import org.keycloak.admin.client.resource.UserResource;
import org.keycloak.representations.idm.ClientRepresentation;
import org.keycloak.representations.idm.CredentialRepresentation;
+import org.keycloak.representations.idm.ProtocolMapperRepresentation;
import org.keycloak.representations.idm.RoleRepresentation;
import org.keycloak.representations.idm.UserRepresentation;
@@ -90,6 +91,15 @@ public class ApiUtil {
return client.roles().get(role);
}
+ public static ProtocolMapperRepresentation findProtocolMapperByName(ClientResource client, String name) {
+ for (ProtocolMapperRepresentation p : client.getProtocolMappers().getMappers()) {
+ if (p.getName().equals(name)) {
+ return p;
+ }
+ }
+ return null;
+ }
+
public static RoleResource findRealmRoleByName(RealmResource realm, String role) {
return realm.roles().get(role);
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/util/ClientManager.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/util/ClientManager.java
index f8a9a73..597376c 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/util/ClientManager.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/util/ClientManager.java
@@ -3,10 +3,14 @@ package org.keycloak.testsuite.util;
import org.keycloak.admin.client.resource.ClientResource;
import org.keycloak.admin.client.resource.RealmResource;
import org.keycloak.representations.idm.ClientRepresentation;
+import org.keycloak.representations.idm.ProtocolMapperRepresentation;
+import org.keycloak.representations.idm.RoleRepresentation;
+import java.util.Collections;
import java.util.LinkedHashMap;
import static org.keycloak.testsuite.admin.ApiUtil.findClientByClientId;
+import static org.keycloak.testsuite.admin.ApiUtil.findProtocolMapperByName;
/**
* @author <a href="mailto:bruno@abstractj.org">Bruno Oliveira</a>.
@@ -73,5 +77,24 @@ public class ClientManager {
app.setConsentRequired(enable);
clientResource.update(app);
}
+
+ public ClientManagerBuilder addProtocolMapper(ProtocolMapperRepresentation protocolMapper) {
+ clientResource.getProtocolMappers().createMapper(protocolMapper);
+ return this;
+ }
+
+ public void addScopeMapping(RoleRepresentation newRole) {
+ clientResource.getScopeMappings().realmLevel().add(Collections.singletonList(newRole));
+ }
+
+ public ClientManagerBuilder removeProtocolMapper(String protocolMapperName) {
+ ProtocolMapperRepresentation rep = findProtocolMapperByName(clientResource, protocolMapperName);
+ clientResource.getProtocolMappers().delete(rep.getId());
+ return this;
+ }
+
+ public void removeScopeMapping(RoleRepresentation newRole) {
+ clientResource.getScopeMappings().realmLevel().remove(Collections.singletonList(newRole));
+ }
}
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/util/ProtocolMapperUtil.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/util/ProtocolMapperUtil.java
index d9f560a..62018e1 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/util/ProtocolMapperUtil.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/util/ProtocolMapperUtil.java
@@ -6,6 +6,7 @@ import org.keycloak.protocol.oidc.mappers.HardcodedClaim;
import org.keycloak.protocol.oidc.mappers.HardcodedRole;
import org.keycloak.protocol.oidc.mappers.RoleNameMapper;
import org.keycloak.protocol.oidc.mappers.UserAttributeMapper;
+import org.keycloak.protocol.oidc.mappers.UserSessionNoteMapper;
import org.keycloak.representations.idm.ProtocolMapperRepresentation;
/**
@@ -90,4 +91,16 @@ public class ProtocolMapperUtil {
}
+ public static ProtocolMapperRepresentation createClaimMapper(String name,
+ String userSessionNote,
+ String tokenClaimName, String jsonType,
+ boolean consentRequired, String consentText,
+ boolean accessToken, boolean idToken) {
+
+ return ModelToRepresentation.toRepresentation(UserSessionNoteMapper.createClaimMapper(name,
+ userSessionNote,
+ tokenClaimName, jsonType,
+ consentRequired, consentText,
+ accessToken, idToken));
+ }
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/util/RoleBuilder.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/util/RoleBuilder.java
index 1cf46df..caaf4df 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/util/RoleBuilder.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/util/RoleBuilder.java
@@ -48,6 +48,11 @@ public class RoleBuilder {
return this;
}
+ public RoleBuilder scopeParamRequired(Boolean required) {
+ rep.setScopeParamRequired(required);
+ return this;
+ }
+
public RoleRepresentation build() {
return rep;
}
diff --git a/testsuite/integration-arquillian/tests/base/src/test/resources/testrealm.json b/testsuite/integration-arquillian/tests/base/src/test/resources/testrealm.json
index beb1d85..93624ef 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/resources/testrealm.json
+++ b/testsuite/integration-arquillian/tests/base/src/test/resources/testrealm.json
@@ -114,7 +114,7 @@
"consentRequired": true,
"redirectUris": [
- "http://localhost:8180/app/*"
+ "http://localhost:8180/auth/realms/master/app/*"
],
"secret": "password"
}