jjwt icon indicating copy to clipboard operation
jjwt copied to clipboard

Adapter for Jackson 3.0

Open olivierceulemans opened this issue 3 months ago • 6 comments

Is your feature request related to a problem? Please describe. Jackson 3 has been released a few days ago. It introduces a namespace change and api changes.

Describe the solution you'd like Jackson 2.x is probably here to stay for a long time. So the idea would be to have a new adapter for jackson 3.x while still keeping the 2.x one.

Describe alternatives you've considered Jackson 2 and Jackson 3 can probably live together in the same classpath but having a jackson 3 adapter for this project would be nice.

Additional context The next release of the widely used spring framework will also favor Jackson 3.x while still keeping the possibility to work with Jackson 2.x. The release after will likely drop support for Jackson 2.x.

Are there any plans ? Would a pull request addressing this be useful ? (no promises...)

olivierceulemans avatar Oct 16 '25 07:10 olivierceulemans

@olivierceulemans thanks for the issue! There aren't currently any plans to support Jackson 3, but I don't see why we wouldn't if it is expected to be the de-facto JSON parser as previous Jackson versions were.

A pull request would be most welcome! But no worries if you can't get to it right away - this issue can represent the work for it and remain in the backlog until someone picks it up.

lhazlewood avatar Oct 18 '25 23:10 lhazlewood

Hi @lhazlewood I noticed this issue about adding Jackson 3.0 support and would love to help with it. From what I understand, the idea would be to create a new adapter module (perhaps jjwt-jackson3) similar to the existing Jackson 2.x one, implementing the same Serializer and Deserializer interfaces but using the updated Jackson 3 API.

I can start by exploring the current io.jsonwebtoken.jackson.io package and draft a PR that introduces a Jackson3Serializer and Jackson3Deserializer, ensuring it coexists cleanly with the existing Jackson 2.x adapter. Before I proceed, could you confirm whether you’d prefer this as a separate module (e.g., jjwt-jackson3) or integrated into the existing one with version detection at runtime?

Thanks! Looking forward to contributing.

nnam-droid12 avatar Oct 25 '25 20:10 nnam-droid12

Hi all. Does it make sense to have both adapters? I already have the code ready with the Jackson 3 upgrade for the jjwt-jackson module. I can create a pull request with this and then decide whether to have both modules. Regards Giuseppe.

glascaleia avatar Oct 27 '25 13:10 glascaleia

Hi all. Does it make sense to have both adapters? I already have the code ready with the Jackson 3 upgrade for the jjwt-jackson module. I can create a pull request with this and then decide whether to have both modules. Regards Giuseppe.

IMHO, Jackson 2 is going to be around for a long time (it also requires Java 17). JJWT could add a new jackson3 adapter, and let users match library they are using. If someone accidentally includes Jackson 2 and 3 on the classpath, that shouldn't cause an issue (if I'm reading the release notes correctly, different coordinates/package names)

bdemers avatar Oct 27 '25 18:10 bdemers

As of Spring Boot 4.0.0 Jackson 2 support is deprecated.

skurzbac avatar Nov 24 '25 07:11 skurzbac

I have now adapted the project code to Jackson 3. currently awaiting the upgrade for jjwt-jackson, as Jackson 3 requires Java 17 as a minimum version. This change implies that many profiles within the project will need modification.

timbotetsu avatar Dec 04 '25 10:12 timbotetsu