Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -61,25 +61,25 @@

<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<groupId>tools.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.15.4</version>
<version>3.0.3</version>
<type>jar</type>
<scope>compile</scope>
<optional>false</optional>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<groupId>tools.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.15.4</version>
<version>3.0.3</version>
<type>jar</type>
<scope>compile</scope>
<optional>false</optional>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.15.4</version>
<version>2.20</version>
<type>jar</type>
<scope>compile</scope>
<optional>false</optional>
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/io/fusionauth/jwks/JSONWebKeySetHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

package io.fusionauth.jwks;

import com.fasterxml.jackson.databind.JsonNode;
import tools.jackson.databind.JsonNode;
import io.fusionauth.http.AbstractHttpHelper;
import io.fusionauth.jwks.domain.JSONWebKey;
import io.fusionauth.jwt.json.Mapper;
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/io/fusionauth/jwt/domain/JWT.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import tools.jackson.databind.annotation.JsonDeserialize;
import tools.jackson.databind.annotation.JsonSerialize;
import io.fusionauth.jwt.JWTDecoder;
import io.fusionauth.jwt.JWTEncoder;
import io.fusionauth.jwt.TimeMachineJWTDecoder;
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/io/fusionauth/jwt/json/JacksonModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

package io.fusionauth.jwt.json;

import com.fasterxml.jackson.databind.module.SimpleModule;
import tools.jackson.databind.module.SimpleModule;

import java.time.ZonedDateTime;

Expand Down
32 changes: 15 additions & 17 deletions src/main/java/io/fusionauth/jwt/json/Mapper.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,11 @@
package io.fusionauth.jwt.json;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import tools.jackson.core.JacksonException;
import tools.jackson.databind.DeserializationFeature;
import tools.jackson.databind.ObjectMapper;
import tools.jackson.databind.SerializationFeature;
import tools.jackson.databind.json.JsonMapper;
import io.fusionauth.jwt.InvalidJWTException;

import java.io.IOException;
Expand All @@ -32,45 +33,42 @@
* @author Daniel DeGroff
*/
public class Mapper {
private final static ObjectMapper OBJECT_MAPPER = new ObjectMapper();
private final static ObjectMapper OBJECT_MAPPER = JsonMapper.builder()
.changeDefaultPropertyInclusion(incl -> incl.withValueInclusion(JsonInclude.Include.NON_NULL))
.configure(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS, true)
.configure(DeserializationFeature.USE_BIG_INTEGER_FOR_INTS, true)
.addModule(new JacksonModule())
.build();

public static <T> T deserialize(byte[] bytes, Class<T> type) throws InvalidJWTException {
try {
return OBJECT_MAPPER.readValue(bytes, type);
} catch (IOException e) {
} catch (JacksonException e) {
throw new InvalidJWTException("The JWT could not be de-serialized.", e);
}
}

public static <T> T deserialize(InputStream is, Class<T> type) throws InvalidJWTException {
try {
return OBJECT_MAPPER.readValue(is, type);
} catch (IOException e) {
} catch (JacksonException e) {
throw new InvalidJWTException("The input stream could not be de-serialized.", e);
}
}

public static byte[] prettyPrint(Object object) throws InvalidJWTException {
try {
return OBJECT_MAPPER.writerWithDefaultPrettyPrinter().writeValueAsBytes(object);
} catch (JsonProcessingException e) {
} catch (JacksonException e) {
throw new InvalidJWTException("The object could not be serialized.", e);
}
}

public static byte[] serialize(Object object) throws InvalidJWTException {
try {
return OBJECT_MAPPER.writeValueAsBytes(object);
} catch (JsonProcessingException e) {
} catch (JacksonException e) {
throw new InvalidJWTException("The JWT could not be serialized.", e);
}
}

static {
OBJECT_MAPPER.setSerializationInclusion(JsonInclude.Include.NON_NULL)
.configure(SerializationFeature.WRITE_NULL_MAP_VALUES, false)
.configure(DeserializationFeature.USE_BIG_DECIMAL_FOR_FLOATS, true)
.configure(DeserializationFeature.USE_BIG_INTEGER_FOR_INTS, true)
.registerModule(new JacksonModule());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@

package io.fusionauth.jwt.json;

import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonToken;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.deser.std.StdScalarDeserializer;
import tools.jackson.core.JsonParser;
import tools.jackson.core.JsonToken;
import tools.jackson.databind.DeserializationContext;
import tools.jackson.databind.deser.std.StdScalarDeserializer;

import java.io.IOException;
import java.time.Instant;
Expand All @@ -37,8 +37,8 @@ public ZonedDateTimeDeserializer() {
}

@Override
public ZonedDateTime deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException {
JsonToken t = jp.getCurrentToken();
public ZonedDateTime deserialize(JsonParser jp, DeserializationContext ctxt) {
JsonToken t = jp.currentToken();
long value;
if (t == JsonToken.VALUE_NUMBER_INT || t == JsonToken.VALUE_NUMBER_FLOAT) {
value = jp.getLongValue();
Expand All @@ -51,10 +51,10 @@ public ZonedDateTime deserialize(JsonParser jp, DeserializationContext ctxt) thr
try {
value = Long.parseLong(str);
} catch (NumberFormatException e) {
throw ctxt.mappingException(handledType());
return null;
}
} else {
throw ctxt.mappingException(handledType());
return null;
}

return Instant.ofEpochSecond(value).atZone(ZoneOffset.UTC);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@

package io.fusionauth.jwt.json;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.ser.std.StdScalarSerializer;
import tools.jackson.core.JsonGenerator;
import tools.jackson.databind.SerializationContext;
import tools.jackson.databind.ser.std.StdScalarSerializer;

import java.io.IOException;
import java.time.ZonedDateTime;
Expand All @@ -34,7 +34,7 @@ public ZonedDateTimeSerializer() {
}

@Override
public void serialize(ZonedDateTime value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
public void serialize(ZonedDateTime value, JsonGenerator jgen, SerializationContext provider) {
if (value == null) {
jgen.writeNull();
} else {
Expand Down
4 changes: 2 additions & 2 deletions src/main/java9/module-info.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@
exports io.fusionauth.security;

requires com.fasterxml.jackson.annotation;
requires com.fasterxml.jackson.core;
requires com.fasterxml.jackson.databind;
requires tools.jackson.core;
requires tools.jackson.databind;
}