Fix empty security context in statistics requests.
Change-Id: I87bc4ee9f39a60cc514de619dda3024a406c6bda
diff --git a/Changes b/Changes
index e194067..6d71fec 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,7 @@
+# version 0.78.1
+
+- Fix empty security context in statistics requests.
+
# version 0.78
- Renamed free resource to resource.
diff --git a/pom.xml b/pom.xml
index 112c211..be6c2a6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>de.ids-mannheim.korap.kustvakt</groupId>
<artifactId>Kustvakt</artifactId>
- <version>0.78</version>
+ <version>0.78.1</version>
<properties>
<java.version>17</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
diff --git a/src/main/java/de/ids_mannheim/korap/core/web/controller/StatisticController.java b/src/main/java/de/ids_mannheim/korap/core/web/controller/StatisticController.java
index 398e947..998f48a 100644
--- a/src/main/java/de/ids_mannheim/korap/core/web/controller/StatisticController.java
+++ b/src/main/java/de/ids_mannheim/korap/core/web/controller/StatisticController.java
@@ -13,6 +13,7 @@
import de.ids_mannheim.korap.security.context.TokenContext;
import de.ids_mannheim.korap.web.CoreResponseHandler;
import de.ids_mannheim.korap.web.filter.APIVersionFilter;
+import de.ids_mannheim.korap.web.filter.AuthenticationFilter;
import de.ids_mannheim.korap.web.filter.DemoUserFilter;
import de.ids_mannheim.korap.web.utils.ResourceFilters;
import jakarta.ws.rs.Consumes;
@@ -38,7 +39,8 @@
*/
@Controller
@Path("{version}/statistics/")
-@ResourceFilters({ APIVersionFilter.class, DemoUserFilter.class })
+@ResourceFilters({ APIVersionFilter.class, AuthenticationFilter.class,
+ DemoUserFilter.class })
@Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")
public class StatisticController {
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/StatisticsControllerTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/StatisticsControllerTest.java
index 6c68ce6..c7b1fef 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/StatisticsControllerTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/StatisticsControllerTest.java
@@ -5,25 +5,25 @@
import java.io.IOException;
-import jakarta.ws.rs.client.Entity;
-import jakarta.ws.rs.core.HttpHeaders;
-import jakarta.ws.rs.core.MediaType;
-import jakarta.ws.rs.core.Response.Status;
-
import org.junit.jupiter.api.Test;
-import com.fasterxml.jackson.databind.JsonNode;
-import jakarta.ws.rs.core.Response;
-import de.ids_mannheim.korap.config.SpringJerseyTest;
+import com.fasterxml.jackson.databind.JsonNode;
+
+import de.ids_mannheim.korap.config.Attributes;
import de.ids_mannheim.korap.exceptions.KustvaktException;
import de.ids_mannheim.korap.exceptions.StatusCodes;
import de.ids_mannheim.korap.utils.JsonUtils;
+import jakarta.ws.rs.client.Entity;
+import jakarta.ws.rs.core.HttpHeaders;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
/**
* @author margaretha, diewald
*/
-public class StatisticsControllerTest extends SpringJerseyTest {
-
+public class StatisticsControllerTest extends OAuth2TestBase {
+
@Test
public void testGetStatisticsNoResource ()
throws IOException, KustvaktException {
@@ -38,6 +38,26 @@
assertEquals(0,node.get("documents").asInt());
assertEquals(0,node.get("tokens").asInt());
}
+
+ @Test
+ public void testGetStatisticsWithLogin () throws KustvaktException {
+ Response response = requestTokenWithDoryPassword(superClientId,
+ clientSecret);
+ JsonNode node = JsonUtils.readTree(response.readEntity(String.class));
+ assertEquals(node.at("/scope").asText(), "all");
+ String accessToken = node.at("/access_token").asText();
+
+ String corpusQuery = "corpusSigle=GOE";
+ response = target().path(API_VERSION).path("statistics")
+ .queryParam("cq", corpusQuery).request()
+ .header(Attributes.AUTHORIZATION, "Bearer " + accessToken)
+ .get();
+ assert Status.OK.getStatusCode() == response.getStatus();
+
+ String ent = response.readEntity(String.class);
+ node = JsonUtils.readTree(ent);
+ assertEquals(11,node.get("documents").asInt());
+ }
@Test
public void testStatisticsWithCq () throws KustvaktException {