From 74af8b1663aa02821113712bc3ae9520363dee3b Mon Sep 17 00:00:00 2001 From: Aleksandar Zivkovic Date: Mon, 3 Mar 2025 09:24:43 +0100 Subject: [PATCH] add x-total-count to allowed cors headers issue #58 --- .../rest/config/filters/response/CorsResponseFilter.java | 2 +- .../filters/response/XTotalCountResponseFilter.java | 4 ++-- .../java/com/gepardec/rest/impl/MatchResourceImpl.java | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/gamertrack-application/src/main/java/com/gepardec/rest/config/filters/response/CorsResponseFilter.java b/gamertrack-application/src/main/java/com/gepardec/rest/config/filters/response/CorsResponseFilter.java index c53d64fd..847ae4b2 100644 --- a/gamertrack-application/src/main/java/com/gepardec/rest/config/filters/response/CorsResponseFilter.java +++ b/gamertrack-application/src/main/java/com/gepardec/rest/config/filters/response/CorsResponseFilter.java @@ -26,7 +26,7 @@ public void filter(ContainerRequestContext requestContext, ContainerResponseCont if (origin != null && origin.matches(dotenv.get("ALLOWED_ORIGINS_AS_REGEX"))) { responseContext.getHeaders().add("Access-Control-Allow-Origin", origin); responseContext.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, HEAD"); - responseContext.getHeaders().add("Access-Control-Allow-Headers", "Content-Type, Authorization"); + responseContext.getHeaders().add("Access-Control-Allow-Headers", "Content-Type, Authorization, x-total-count"); responseContext.getHeaders().add("Access-Control-Allow-Credentials", true); } } diff --git a/gamertrack-application/src/main/java/com/gepardec/rest/config/filters/response/XTotalCountResponseFilter.java b/gamertrack-application/src/main/java/com/gepardec/rest/config/filters/response/XTotalCountResponseFilter.java index 5bf4b047..717b6cce 100644 --- a/gamertrack-application/src/main/java/com/gepardec/rest/config/filters/response/XTotalCountResponseFilter.java +++ b/gamertrack-application/src/main/java/com/gepardec/rest/config/filters/response/XTotalCountResponseFilter.java @@ -14,8 +14,8 @@ public class XTotalCountResponseFilter implements ContainerResponseFilter { public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException { var body = responseContext.getEntity(); - if (!responseContext.getHeaders().containsKey("X-Total-Count") && body instanceof Collection) { - responseContext.getHeaders().add("X-Total-Count", ((Collection) body).size()); + if (!responseContext.getHeaders().containsKey("x-total-count".toLowerCase()) && body instanceof Collection) { + responseContext.getHeaders().add("x-total-count".toLowerCase(), ((Collection) body).size()); } } diff --git a/gamertrack-application/src/main/java/com/gepardec/rest/impl/MatchResourceImpl.java b/gamertrack-application/src/main/java/com/gepardec/rest/impl/MatchResourceImpl.java index 3a2c957a..b1c71890 100644 --- a/gamertrack-application/src/main/java/com/gepardec/rest/impl/MatchResourceImpl.java +++ b/gamertrack-application/src/main/java/com/gepardec/rest/impl/MatchResourceImpl.java @@ -45,10 +45,10 @@ public Response getMatches(Optional gameToken, Optional userToke public Response createPaginatedResponse(long totalData, PageRequest pageRequest, List bodyData) { return Response.ok() - .header("X-Total-Count", totalData) - .header("X-Total-Pages", (int) ceil((double) totalData / pageRequest.size())) - .header("X-Page-Size", pageRequest.size()) - .header("X-Current-Page", pageRequest.page()) + .header("X-Total-Count".toLowerCase(), totalData) + .header("X-Total-Pages".toLowerCase(), (int) ceil((double) totalData / pageRequest.size())) + .header("X-Page-Size".toLowerCase(), pageRequest.size()) + .header("X-Current-Page".toLowerCase(), pageRequest.page()) .entity(bodyData.stream() .map(MatchRestDto::new) .toList())