Updated client registration requirement to allow desktop apps.
Change-Id: I637ebd3e4b3362e6f5b498ee3cb0e0f45a928007
diff --git a/full/src/test/java/de/ids_mannheim/korap/web/controller/OAuth2ClientControllerTest.java b/full/src/test/java/de/ids_mannheim/korap/web/controller/OAuth2ClientControllerTest.java
index c32ccac..b9d640f 100644
--- a/full/src/test/java/de/ids_mannheim/korap/web/controller/OAuth2ClientControllerTest.java
+++ b/full/src/test/java/de/ids_mannheim/korap/web/controller/OAuth2ClientControllerTest.java
@@ -87,12 +87,11 @@
response = testRegisterConfidentialClient();
assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus());
node = JsonUtils.readTree(response.getEntity(String.class));
- assertEquals(OAuth2Error.INVALID_REQUEST,
- node.at("/error").asText());
+ assertEquals(OAuth2Error.INVALID_REQUEST, node.at("/error").asText());
testDeregisterConfidentialClientMissingParameters();
testDeregisterClientIncorrectCredentials(clientId);
- testDeregisterConfidentialClient(clientId,clientSecret);
+ testDeregisterConfidentialClient(clientId, clientSecret);
}
@Test
@@ -145,7 +144,32 @@
assertEquals(Status.OK.getStatusCode(), response.getStatus());
- //EM: need to check native
+ // EM: need to check native
+ }
+
+ @Test
+ public void testRegisterDesktopApp () throws UniformInterfaceException,
+ ClientHandlerException, KustvaktException {
+ OAuth2ClientJson json = new OAuth2ClientJson();
+ json.setName("OAuth2DesktopClient");
+ json.setType(OAuth2ClientType.PUBLIC);
+ json.setDescription("This is a desktop test client.");
+
+ ClientResponse response = resource().path("oauth2").path("client")
+ .path("register")
+ .header(Attributes.AUTHORIZATION,
+ handler.createBasicAuthorizationHeaderValue(username,
+ "pass"))
+ .header(HttpHeaders.X_FORWARDED_FOR, "149.27.0.32")
+ .header(HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_JSON)
+ .entity(json).post(ClientResponse.class);
+
+ String entity = response.getEntity(String.class);
+ assertEquals(Status.OK.getStatusCode(), response.getStatus());
+ JsonNode node = JsonUtils.readTree(entity);
+ String clientId = node.at("/client_id").asText();
+ assertNotNull(clientId);
+ assertTrue(node.at("/client_secret").isMissingNode());
}
private void testDeregisterPublicClient (String clientId)
@@ -199,8 +223,7 @@
assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus());
JsonNode node = JsonUtils.readTree(entity);
- assertEquals(OAuth2Error.INVALID_REQUEST,
- node.at("/error").asText());
+ assertEquals(OAuth2Error.INVALID_REQUEST, node.at("/error").asText());
assertEquals("Missing parameters: client_secret client_id",
node.at("/error_description").asText());
}
@@ -223,8 +246,7 @@
assertEquals(Status.UNAUTHORIZED.getStatusCode(), response.getStatus());
JsonNode node = JsonUtils.readTree(entity);
- assertEquals(OAuth2Error.INVALID_CLIENT,
- node.at("/error").asText());
+ assertEquals(OAuth2Error.INVALID_CLIENT, node.at("/error").asText());
assertEquals("Invalid client credentials",
node.at("/error_description").asText());
diff --git a/full/src/test/resources/test-config.xml b/full/src/test/resources/test-config.xml
index 180be50..cad93aa 100644
--- a/full/src/test/resources/test-config.xml
+++ b/full/src/test/resources/test-config.xml
@@ -185,8 +185,9 @@
static-field="org.apache.commons.validator.routines.UrlValidator.NO_FRAGMENTS" />
</constructor-arg>
</bean>
- <!-- <bean id="httpsValidator" class="org.apache.commons.validator.routines.UrlValidator">
- <constructor-arg value="https" /> </bean> -->
+ <bean id="urlValidator" class="org.apache.commons.validator.routines.UrlValidator">
+ <constructor-arg value="http,https" />
+ </bean>
<bean id="kustvakt_rewrite" class="de.ids_mannheim.korap.rewrite.FullRewriteHandler">
<constructor-arg ref="kustvakt_config" />