Comments (5)
Hi @hexangular,
Unfortunately, people using our library could be using a different Jackson version (this was the case why we decided to merge this change, see #6). I agree is not elegant repackaging but how would you address having different versions of Jackson? Do you think there is a better and more elegant way to tackle the issue?
Thanks in advance,
from java-jwt.
Hi @pose ,
Maybe can You provide some kind of adapter for users and remove Jackson from dependencies.
Adapter interface would have all serialization/deserialization methods and user would implement it using his version of Jackson or maybe even using different library.
It would require a liite more work from users but I think It can be a solution.
What do You think?
from java-jwt.
Hi @hexangular,
One of the guiding lights of java-jwt is making the library simple to use. That means that we should provide a default JSON serialization/deserialization mechanism in the library. I agree with your point of creating an Adapter Interface as long as is clear and doesn't add much complexity or too many abstractions but by default it should work as it does now.
Maybe there is another way to solve this: What if we use optional dependencies in Maven? I'm thinking something like, if you include GSON or your own JSON library we use that but if we don't find it we switch to our default. One of the drawbacks would be that those checks could be expensive as they use reflection. Thoughts?
from java-jwt.
Or you could provide multiple binaries and let consumers decide whether or not to have things repackaged.
from java-jwt.
Couple of comments here, in case they might help.
First, while it makes sense to repackage some of Jackson code (like streaming parser/generator, jackson-core
and databinding, jackson-databind
), it may not make as much sense to repackage annotations under com.fasterxml.jackson.annotation
. That package is much more static and slow moving, and rarely causes version conflicts. So perhaps leaving annotations package in its original Java package would be the best way? This would allow working with both vanilla Jackson 2.x and repackaged version(s).
Second: all access to annotations by Jackson is via abstract (AnnotationIntrospector
), so it is actually possible to add support both for "alien" annotations (like JAXB), old versions (use Jackson 1.x annotations with Jackson 2.x) and repackaged variants. Not sure if this helps here -- probably not? -- but perhaps worth mentioning.
from java-jwt.
Related Issues (20)
- Published license identifier is not compliant with the SPDX license list HOT 2
- com.auth0.jwt.exceptions.JWTDecodeException: The input is not a valid base 64 encoded string. HOT 6
- Allow configuration of Jackson ObjectMapper HOT 2
- token is still alive, when "exp" = NOW HOT 2
- Support for the absence of payload HOT 4
- Add Support for the EdDSA Signatures HOT 2
- Support for PS256 algorithm HOT 2
- Integrating java-jwt into OSS-Fuzz HOT 2
- Aud with empty string returns empty List HOT 7
- Allow using custom ObjectMapper for JWTParser HOT 2
- Does the lib have a feature to create jwt token from pem file? HOT 1
- From 3.19.4 to 4.4.0: IncorrectClaimException on verify() HOT 5
- KeyProvider-style API for signature schemes (HMAC) HOT 2
- NullPointerException when checking empty audience HOT 2
- Javadoc contains dead links to readme HOT 1
- JwkProviderBuilder doesn't allow us to load jwks from a file. Instead the only option available is to load it via a URL. HOT 1
- IncorrectClaimException
- Invalid Token: The token can't be used before 2024-04-29T04:27:39Z
- Wrong algorithm name matching between JWT and Algorithm HOT 1
- It is suspected that the interface definition is incorrect
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from java-jwt.