keycloak-uncached
Merge pull request #2816 from abstractj/AuthorizationCodeTest-1.9.x Migration …
5/11/2016 9:09:31 AM
Changes
testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/src/main/java/org/keycloak/testsuite/rest/TestingResourceProvider.java 19(+19 -0)
testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/client/resources/TestingResource.java 6(+5 -1)
Details
diff --git a/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/src/main/java/org/keycloak/testsuite/rest/TestingResourceProvider.java b/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/src/main/java/org/keycloak/testsuite/rest/TestingResourceProvider.java
index a1c1c4d..61169ec 100644
--- a/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/src/main/java/org/keycloak/testsuite/rest/TestingResourceProvider.java
+++ b/testsuite/integration-arquillian/servers/auth-server/services/testsuite-providers/src/main/java/org/keycloak/testsuite/rest/TestingResourceProvider.java
@@ -26,6 +26,7 @@ import org.keycloak.models.RealmModel;
import org.keycloak.models.UserSessionModel;
import org.keycloak.models.utils.ModelToRepresentation;
import org.keycloak.representations.idm.EventRepresentation;
+import org.keycloak.services.managers.ClientSessionCode;
import org.keycloak.services.managers.RealmManager;
import org.keycloak.services.resource.RealmResourceProvider;
import org.keycloak.testsuite.events.EventsListenerProvider;
@@ -165,4 +166,22 @@ public class TestingResourceProvider implements RealmResourceProvider {
public void close() {
}
+ /*
+ * Migration from KeycloakRule#verifyCode
+ */
+ @GET
+ @Path("/verify-code")
+ @Produces(MediaType.APPLICATION_JSON)
+ public String verifyCode(@QueryParam("realm") String realmName, @QueryParam("code") String code) {
+ RealmModel realm = session.realms().getRealm(realmName);
+ try {
+ ClientSessionCode accessCode = ClientSessionCode.parse(code, session, realm);
+ if (accessCode == null) {
+ throw new AssertionError("Invalid code");
+ }
+ return accessCode.getClientSession().getId();
+ } catch (Throwable t) {
+ throw new AssertionError("Failed to parse code", t);
+ }
+ }
}
diff --git a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/client/resources/TestingResource.java b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/client/resources/TestingResource.java
index 6c950ee..58d45d7 100644
--- a/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/client/resources/TestingResource.java
+++ b/testsuite/integration-arquillian/tests/base/src/main/java/org/keycloak/testsuite/client/resources/TestingResource.java
@@ -42,7 +42,7 @@ public interface TestingResource {
@GET
@Path("/time-offset")
@Produces(MediaType.APPLICATION_JSON)
- Map<String, String> getTimeOffset() ;
+ Map<String, String> getTimeOffset();
@PUT
@Path("/time-offset")
@@ -80,4 +80,8 @@ public interface TestingResource {
@Produces(MediaType.APPLICATION_JSON)
boolean isCached(@PathParam("cache") String cacheName, @PathParam("id") String id);
+ @GET
+ @Path("/verify-code")
+ @Produces(MediaType.APPLICATION_JSON)
+ String verifyCode(@QueryParam("realm") String realmName, @QueryParam("code") String code);
}
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 597376c..02bd19a 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
@@ -6,8 +6,10 @@ import org.keycloak.representations.idm.ClientRepresentation;
import org.keycloak.representations.idm.ProtocolMapperRepresentation;
import org.keycloak.representations.idm.RoleRepresentation;
+import java.util.Arrays;
import java.util.Collections;
import java.util.LinkedHashMap;
+import java.util.LinkedList;
import static org.keycloak.testsuite.admin.ApiUtil.findClientByClientId;
import static org.keycloak.testsuite.admin.ApiUtil.findProtocolMapperByName;
@@ -96,5 +98,22 @@ public class ClientManager {
public void removeScopeMapping(RoleRepresentation newRole) {
clientResource.getScopeMappings().realmLevel().remove(Collections.singletonList(newRole));
}
+
+ public void addRedirectUris(String... redirectUris) {
+ ClientRepresentation app = clientResource.toRepresentation();
+ if (app.getRedirectUris() == null) {
+ app.setRedirectUris(new LinkedList<String>());
+ }
+ app.setRedirectUris(Arrays.asList(redirectUris));
+ clientResource.update(app);
+ }
+
+ public void removeRedirectUris(String... redirectUris) {
+ ClientRepresentation app = clientResource.toRepresentation();
+ for (String redirectUri : redirectUris) {
+ app.getRedirectUris().remove(redirectUri);
+ }
+ clientResource.update(app);
+ }
}
}