diff --git a/cas-client-core/pom.xml b/cas-client-core/pom.xml
index beb075bff..1d37f9f1a 100644
--- a/cas-client-core/pom.xml
+++ b/cas-client-core/pom.xml
@@ -61,7 +61,7 @@
- com.fasterxml.jackson.core
+ tools.jackson.core
jackson-databind
diff --git a/cas-client-core/src/main/java/org/apereo/cas/client/session/SingleSignOutHandler.java b/cas-client-core/src/main/java/org/apereo/cas/client/session/SingleSignOutHandler.java
index 0c706bdd1..e5cda6c6d 100644
--- a/cas-client-core/src/main/java/org/apereo/cas/client/session/SingleSignOutHandler.java
+++ b/cas-client-core/src/main/java/org/apereo/cas/client/session/SingleSignOutHandler.java
@@ -18,8 +18,6 @@
*/
package org.apereo.cas.client.session;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.util.JSONPObject;
import org.apereo.cas.client.Protocol;
import org.apereo.cas.client.configuration.ConfigurationKeys;
import org.apereo.cas.client.util.CommonUtils;
@@ -33,6 +31,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import tools.jackson.databind.json.JsonMapper;
+import tools.jackson.databind.util.JSONPObject;
import java.util.Arrays;
import java.util.Base64;
@@ -57,7 +57,7 @@ public final class SingleSignOutHandler {
private final LogoutStrategy logoutStrategy = isServlet30() ? new Servlet30LogoutStrategy() : new Servlet25LogoutStrategy();
- private final ObjectMapper mapper = new ObjectMapper();
+ private final JsonMapper mapper = JsonMapper.builder().build();
/** Mapping of token IDs and session IDs to HTTP sessions */
private SessionMappingStorage sessionMappingStorage = new HashMapBackedSessionMappingStorage();
diff --git a/cas-client-core/src/main/java/org/apereo/cas/client/validation/json/Cas30JsonServiceTicketValidator.java b/cas-client-core/src/main/java/org/apereo/cas/client/validation/json/Cas30JsonServiceTicketValidator.java
index 5034f2806..7b25ab0b1 100644
--- a/cas-client-core/src/main/java/org/apereo/cas/client/validation/json/Cas30JsonServiceTicketValidator.java
+++ b/cas-client-core/src/main/java/org/apereo/cas/client/validation/json/Cas30JsonServiceTicketValidator.java
@@ -22,9 +22,8 @@
import org.apereo.cas.client.validation.Cas30ServiceTicketValidator;
import org.apereo.cas.client.validation.TicketValidationException;
-import com.fasterxml.jackson.core.JsonProcessingException;
+import tools.jackson.core.JacksonException;
-import java.io.IOException;
import java.util.Collections;
import java.util.Map;
@@ -48,11 +47,9 @@ protected Assertion parseResponseFromServer(final String response) throws Ticket
try {
final var json = new JsonValidationResponseParser().parse(response);
return json.getAssertion(getProxyGrantingTicketStorage(), getProxyRetriever());
- } catch (final JsonProcessingException e) {
+ } catch (final JacksonException e) {
logger.warn("Unable parse the JSON response. Falling back to XML", e);
return super.parseResponseFromServer(response);
- } catch (final IOException e) {
- throw new TicketValidationException(e.getMessage(), e);
}
}
diff --git a/cas-client-core/src/main/java/org/apereo/cas/client/validation/json/JsonValidationResponseParser.java b/cas-client-core/src/main/java/org/apereo/cas/client/validation/json/JsonValidationResponseParser.java
index 210205843..0b615262d 100644
--- a/cas-client-core/src/main/java/org/apereo/cas/client/validation/json/JsonValidationResponseParser.java
+++ b/cas-client-core/src/main/java/org/apereo/cas/client/validation/json/JsonValidationResponseParser.java
@@ -20,10 +20,7 @@
import org.apereo.cas.client.util.CommonUtils;
import org.apereo.cas.client.validation.TicketValidationException;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-import java.io.IOException;
+import tools.jackson.databind.json.JsonMapper;
/**
* This is {@link JsonValidationResponseParser}.
@@ -31,19 +28,18 @@
* @author Misagh Moayyed
*/
final class JsonValidationResponseParser {
- private final ObjectMapper objectMapper;
+ private final JsonMapper jsonMapper;
public JsonValidationResponseParser() {
- this.objectMapper = new ObjectMapper();
- this.objectMapper.findAndRegisterModules();
+ this.jsonMapper = JsonMapper.builder().build();
}
- public TicketValidationJsonResponse parse(final String response) throws TicketValidationException, IOException {
+ public TicketValidationJsonResponse parse(final String response) throws TicketValidationException {
if (CommonUtils.isBlank(response)) {
throw new TicketValidationException("Invalid JSON response; The response is empty");
}
- final var json = this.objectMapper.readValue(response, TicketValidationJsonResponse.class);
+ final var json = this.jsonMapper.readValue(response, TicketValidationJsonResponse.class);
final var serviceResponse = json.serviceResponse();
if (serviceResponse.authenticationFailure() != null
diff --git a/pom.xml b/pom.xml
index 0b5c765eb..75dccaf00 100644
--- a/pom.xml
+++ b/pom.xml
@@ -177,11 +177,15 @@
test
${log4j.version}
+
- com.fasterxml.jackson.core
- jackson-databind
+ tools.jackson
+ jackson-bom
+ pom
+ import
${jackson.version}
+
com.nimbusds
nimbus-jose-jwt
@@ -250,7 +254,7 @@
7.0.3
3.11.1
2.0.17
- 2.21.0
+ 3.0.4
6.1.0
1.20.0
1.2.17