- Update buddy-core to 1.6.0
- Update buddy-core to 1.5.0
- Proper handling of SignatureException (jws).
- Add EdDSA signer.
- Add KeyProvider abstraction for enably dynamic selection of key on JWS.
- Update buddy-core to 1.4.0
:skip-validation option to jwt functions, for allow inspect invalid tokens.
- Add support for custom header through
:header option on jws, jwe and jwt.
typ header is no longer set by default (is optional on the RFC and is removed for save some bytes on all tokens)
- Now only the
:enc headers are treated specially (keywordized on header decoding), tha rest are returned as is.
- Stop rejecting tokens with future
:iat claim values. (BACKWARD INCOMPATIBLE CHANGE, more info in #49)
- Fix unexpected exception in some malformed tokens.
:leeway option to
- Update buddy-core to 1.3.0
- Update to use Clojure 1.9-alpha17
- Update cheshire to 5.7.1
- Update nippy to 2.13.0
- Allows not just a single issuer, but also a collection of issuers, to be provided for validating the
iss claim in a token
- Evaluate jdk8 extensions at runtime. It allow build jdk7 compatible jars using JDK8.
- Update buddy-core to 1.2.0
- Update cheshire to 5.7.0
- Update buddy-core to 1.1.1
- Update buddy-core to 1.0.0
- Update cheshire to 5.6.3
- Update nippy to 2.12.2
- Add the ability to pass any type that implements ITimestamp protocol as value to the
:now parameter on JWT api.
- Test everything with generative tests (with test.check)
- Drop direct support to clojure 1.5 and 1.6 (because test.check has hard dependency with clojure ># 1.7)
- Update to buddy 0.13.0 that fixes some bugs that affects to JWE when compressed tokens are used.
- Fix varios jwe/jws/jwt validations bugs found thanks to using generative tests with test.check.
aud claim validation can be a set.
Important: This is an major release beacause it includes breaking api changes.
JWS and JWE becomes a more low level function for sign or encrypt arbitrary data (as RFC specifies) and all claims and json related stuff is moved into specific JWT related namespace.
The api is preserved so, the migration is pretty easy; just replace your
jwe import with
;; Old imports: (require '[buddy.sign.jws :as jws]) (require '[buddy.sign.jwe :as jwe])
Many thanks to @FreekPaans for the initial work on split JWS and JWT.
The clj-time dependency is removed. JodaTime directly is used if it is avaliable in the classpath.
Add jdk8 java.time.Instant support for time related claims.
Removed hardcoded dependency to
nippy for compact signing ns. Now the user should specify their own dependency in order to be able use the compact message signing implementation.
- Fix unexpected NPE on header parsing on jws/jwe.
:exp claim validation (thanks @dottedmag) for JWS/JWE.
:nbf claim validation on JWE.
- Add improved
:iat validation (thanks @dottedmag) for JWS/JWE.
- Fix compliance with RFC bug in JWE implementation (header was improperly encoded before passed as aad that causes incompatibilities with other implementations). WARNING: will invalidate all your tokens.
- Adapt to buddy-core api changes.
- Update buddy-core dependency to 0.11.0
- Remove user.clj accindentally pulled into the jar.
- Update buddy-core dependency to 0.10.0
- Update nippy dependency to 2.11.1.
- Fix exception data inconsistency with jwt on compact impl.
- Fix wrong documentation about auto detection of the alg.
- Update buddy-core dependency to 0.9.0
- Minor cosmetic changes.
- Properly remove cats dependency.
- Fix wrong arguments on jws and compact sign methods.
- Adapt to buddy-core 0.8.x changes.
- BREAKING CHANGE: Remove cats dependency. The jws/encode, jws/decode and respectivelly functions in the jwe namespace are now simple alias to the main api on the each ns.
- Fix broken nbf claim validation. (thanks to @jonpither for report it)
- Update cats to 1.0.0
- Update clj-time to 0.11.0
- Update nippy to 2.9.1
- Update buddy-core to 0.7.0
- Remove slingshot usage and start using plain clojure.lang.ExceptionInfo exceptions. (maybe breaking change)
- Set default clojure version to 1.7.0
- Update cats version to 0.6.1
- Replace cryptographic primitives used in jwe implementation with buddy-core new implementation that fixes few bugs realted to wrong padding management.
- Update buddy-core to 0.6.0
- Remove direct slingshot dependency because is not transitive from the new buddy-core version.
- Update cheshire dependency to 5.5.0
- Improved error reporting when validating wrong jwe/jws tokens.
- Add Jsen Web Encryption support. With key encryption algorithms:
RSA-OAEP-256. and content encryption algorithms:
- The encode and decode functions now returns instances of success or failure of exception monad instead of instances of either monad (maybe breaking change).
- The sign and unsign functions now raises exceptions instead of simply return nil. This allows libraries and applications that does not works with monads workis like a usual, using jvm exceptions and know the specific error instead of useless nil (maybe breaking change).
- Add the ability to specify the
:typ header value in JWS.
- Add :iss (issuer) and :aud (audience) claims validation to JWS.
- Add explicit alg validation in JWS (the previous behavior that only checks the header alg without matching it with user provided value has security flaws: https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/
- Bug fix related to :iat param validating on jws. (thanks to @tvanhens)
- Update nippy version from 2.7.1 to 2.8.0
- Update buddy-core from 0.4.0 to 0.4.2
- Update cats from 0.3.2 to 0.3.4
- Add encode/decode functions to JWS/JWT implementation. Them instead of return plain value, return a monadic either. That allows granular error reporting instead something like nil that not very useful. The previous sign/unsign are conserved for backward compatibility but maybe in future will be removed.
- Rename parameter
max-age on jws implementation. This change introduces a little backward incompatibility.
- Add "compact" signing implementation as replacemen of django based one.
- Django based generic signing is removed.
- Update buddy-core version to 0.4.0
- First version splitted from monolitic buddy package.
- No changes from original version.