From ef535f6c51393d945d9fe07de38de224d5ae443f Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Thu, 23 Nov 2023 16:07:43 +0100 Subject: jackson 2.16 changes some of its default settings so we consolidate our use of the ObjectMapper. Unless special options are used, use a common instance, or create via factory metod. --- .../http/filter/security/base/JsonSecurityRequestFilterBase.java | 6 ++---- .../filter/security/base/JsonSecurityRequestFilterBaseTest.java | 5 ++--- .../http/filter/security/rule/RuleBasedRequestFilterTest.java | 8 +++----- 3 files changed, 7 insertions(+), 12 deletions(-) (limited to 'jdisc-security-filters') diff --git a/jdisc-security-filters/src/main/java/com/yahoo/jdisc/http/filter/security/base/JsonSecurityRequestFilterBase.java b/jdisc-security-filters/src/main/java/com/yahoo/jdisc/http/filter/security/base/JsonSecurityRequestFilterBase.java index 510a47e6dd9..f1bf748ae8b 100644 --- a/jdisc-security-filters/src/main/java/com/yahoo/jdisc/http/filter/security/base/JsonSecurityRequestFilterBase.java +++ b/jdisc-security-filters/src/main/java/com/yahoo/jdisc/http/filter/security/base/JsonSecurityRequestFilterBase.java @@ -1,9 +1,9 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.jdisc.http.filter.security.base; +import ai.vespa.json.Jackson; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; import com.yahoo.component.AbstractComponent; import com.yahoo.jdisc.Response; @@ -27,7 +27,6 @@ import java.util.logging.Logger; public abstract class JsonSecurityRequestFilterBase extends AbstractComponent implements SecurityRequestFilter { private static final Logger log = Logger.getLogger(JsonSecurityRequestFilterBase.class.getName()); - private static final ObjectMapper mapper = new ObjectMapper(); @Override public final void filter(DiscFilterRequest request, ResponseHandler handler) { @@ -37,10 +36,9 @@ public abstract class JsonSecurityRequestFilterBase extends AbstractComponent im protected abstract Optional filter(DiscFilterRequest request); - protected ObjectMapper jsonMapper() { return mapper; } - private void writeResponse(DiscFilterRequest request, ErrorResponse error, ResponseHandler responseHandler) { JsonNode json; + var mapper = Jackson.mapper(); if (error.customJson != null) { json = error.customJson; } else { diff --git a/jdisc-security-filters/src/test/java/com/yahoo/jdisc/http/filter/security/base/JsonSecurityRequestFilterBaseTest.java b/jdisc-security-filters/src/test/java/com/yahoo/jdisc/http/filter/security/base/JsonSecurityRequestFilterBaseTest.java index c6006c1d483..22a77692da3 100644 --- a/jdisc-security-filters/src/test/java/com/yahoo/jdisc/http/filter/security/base/JsonSecurityRequestFilterBaseTest.java +++ b/jdisc-security-filters/src/test/java/com/yahoo/jdisc/http/filter/security/base/JsonSecurityRequestFilterBaseTest.java @@ -1,8 +1,8 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.jdisc.http.filter.security.base; +import ai.vespa.json.Jackson; import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; import com.yahoo.container.jdisc.RequestHandlerTestDriver; import com.yahoo.jdisc.Response; import com.yahoo.jdisc.http.filter.DiscFilterRequest; @@ -20,7 +20,6 @@ import static org.junit.jupiter.api.Assertions.assertNotNull; */ public class JsonSecurityRequestFilterBaseTest { - private final ObjectMapper mapper = new ObjectMapper(); @Test void filter_renders_errors_as_json() throws IOException { @@ -36,7 +35,7 @@ public class JsonSecurityRequestFilterBaseTest { assertNotNull(response); assertEquals(statusCode, response.getStatus()); - JsonNode jsonNode = mapper.readTree(responseHandler.readAll()); + JsonNode jsonNode = Jackson.mapper().readTree(responseHandler.readAll()); assertEquals(message, jsonNode.get("message").asText()); assertEquals(statusCode, jsonNode.get("code").asInt()); } diff --git a/jdisc-security-filters/src/test/java/com/yahoo/jdisc/http/filter/security/rule/RuleBasedRequestFilterTest.java b/jdisc-security-filters/src/test/java/com/yahoo/jdisc/http/filter/security/rule/RuleBasedRequestFilterTest.java index f3d0f59dd4c..3924bf8322b 100644 --- a/jdisc-security-filters/src/test/java/com/yahoo/jdisc/http/filter/security/rule/RuleBasedRequestFilterTest.java +++ b/jdisc-security-filters/src/test/java/com/yahoo/jdisc/http/filter/security/rule/RuleBasedRequestFilterTest.java @@ -1,8 +1,8 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.jdisc.http.filter.security.rule; +import ai.vespa.json.Jackson; import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; import com.yahoo.container.jdisc.RequestHandlerTestDriver.MockResponseHandler; import com.yahoo.jdisc.Metric; @@ -31,8 +31,6 @@ import static org.mockito.Mockito.verify; */ class RuleBasedRequestFilterTest { - private static final ObjectMapper jsonMapper = new ObjectMapper(); - @Test void matches_rule_that_allows_all_methods_and_paths() { RuleBasedFilterConfig config = new RuleBasedFilterConfig.Builder() @@ -230,9 +228,9 @@ class RuleBasedRequestFilterTest { Response response = handler.getResponse(); assertNotNull(response); assertEquals(expectedCode, response.getStatus()); - ObjectNode expectedJson = jsonMapper.createObjectNode(); + ObjectNode expectedJson = Jackson.mapper().createObjectNode(); expectedJson.put("message", expectedMessage).put("code", expectedCode); - JsonNode actualJson = jsonMapper.readTree(handler.readAll().getBytes()); + JsonNode actualJson = Jackson.mapper().readTree(handler.readAll().getBytes()); assertEquals(expectedJson, actualJson); } -- cgit v1.2.3