Commit Graph

  • f7329715d7 - Changed AeadAlgorithm#encrypt to receive AeadResult as a 2nd argument - Changed AeadAlgorithm#decrypt to receive an OutputStream as a 2nd argument Les Hazlewood 2023-09-27 15:38:20 -0700
  • dad664ad27 AeadAlgorithm streams checkpoint 3: AAD is now an InputStream remaining: change AeadAlgorithm#encrypt to receive AeadResult as a 2nd argument (like HttpServlet API) Les Hazlewood 2023-09-27 14:21:18 -0700
  • b2a3fecbe1 Fixed license headers Les Hazlewood 2023-09-27 13:35:36 -0700
  • fae29c7baf AeadAlgorithm streams checkpoint 2: only AAD InputStream remains Les Hazlewood 2023-09-27 13:26:59 -0700
  • 1ecca31d1a readability cleanup Les Hazlewood 2023-09-27 11:13:46 -0700
  • 48f2b318d5 Moved Bytes.stream to Streams.of for better encapsulation Les Hazlewood 2023-09-27 10:32:56 -0700
  • 54ed38a846 AeadAlgorithm streams checkpoint 1 Les Hazlewood 2023-09-26 20:58:29 -0700
  • 523d37b584 docs and formatting cleanup Les Hazlewood 2023-09-26 18:04:57 -0700
  • 19dfcd3696 Triggering CI build Les Hazlewood 2023-09-26 17:17:08 -0700
  • 096613f4ad Addressing Groovy + JDK 7 compile error Les Hazlewood 2023-09-26 17:12:12 -0700
  • f0f8078690 Addressing Groovy + JDK 7 compile error Les Hazlewood 2023-09-26 17:02:24 -0700
  • a49e64e114 Renamed new JwtBuilder#encoder and JwtParserBuilder#decoder methods to JwtBuilder#b64Url and JwtParserBuilder#b64Url for shorter method chains Les Hazlewood 2023-09-26 16:57:28 -0700
  • 7fb7b79b00 Removed recently added Reader/Writer concepts for just overloaded methods in existing Serializer/Deserializer interfaces. This results in less change and is probably more intuitive for existing library users. Les Hazlewood 2023-09-26 16:15:34 -0700
  • 9f19f0eb49 fixed license headers Les Hazlewood 2023-09-26 10:30:40 -0700
  • 595bb69e8d - Was able to move the commons-codec-related code to the impl module (ideally didn't want to expose this implementation detail to the API). Les Hazlewood 2023-09-26 10:24:09 -0700
  • 90b37e22d1 - Renamed Encoder/Decoder and CompressionAlgorithm 'wrap' methods to encode/decode/compress/decompress for better readability and to make clearer the intent of the method. Also to avoid name/text/search collisions with 'wrap' references. Les Hazlewood 2023-09-25 17:36:19 -0700
  • 49cf31b42b Merge branch 'master' into iostreams Les Hazlewood 2023-09-25 15:36:59 -0700
  • 81e2df16d1 Fixing tests to use correct input data type (errors only elucidated on JDK 21) Les Hazlewood 2023-09-25 15:25:01 -0700
  • eaa897d829 JavaDoc and minor code cobweb cleanup Les Hazlewood 2023-09-25 15:07:56 -0700
  • 7fcd652aea Add Java 21 to CI matrix build Brian Demers 2023-09-25 15:09:43 -0400
  • c9e61b4141 100% coverage checkpoint Les Hazlewood 2023-09-25 13:19:41 -0700
  • b486fe8158
    Add Java 21 to CI matrix build Brian Demers 2023-09-25 15:09:43 -0400
  • 14e78f5cbc Updated externally-sourced code attribution in each file and in NOTICE.md Les Hazlewood 2023-09-24 18:46:35 -0700
  • 6b9db7d69e - 100% coverage checkpoint, with: - New JwtParser parseContentJws(String,InputStream) methods are JavaDoc'd - Decompression is streaming when payload is consumable Les Hazlewood 2023-09-24 15:25:11 -0700
  • c151046bd3 - 100% coverage checkpoint. However: - New JwtParser parseContentJws(String,InputStream) methods still need JavaDoc. - Still need to make AeadAlgorithm InputStream-based Les Hazlewood 2023-09-23 20:22:56 -0700
  • 4408369bff Fixed erroneous JavaDoc Les Hazlewood 2023-09-23 09:35:07 -0700
  • 0a44dc4d04 - Added JwtBuilder InputStream payload support: added JwtBuilder#content(InputStream), JwtBuilder#content(InputStream, String contentType), JwtBuilder#content(String, String contentType) - Added CountingInputStream as a way to check and assert that b64/unencoded payload InputStreams cannot be empty. - 100% code coverage checkpoint Les Hazlewood 2023-09-22 20:21:28 -0700
  • b17bfb98bd - Converted all DigestAlgorithms to utilize an InputStream for data instead of byte[] Les Hazlewood 2023-09-21 22:59:02 -0700
  • 40dfebfadb - Added license header Les Hazlewood 2023-09-21 21:42:12 -0700
  • 41bac49ce0 - Ensured Encoder and CompressionAlgorithm supported streams instead of just byte arrays - Copied over necessary (Apache-licensed) code from Apache commons-codec to obtain Base64OutputStream and Base64InputStream capability for efficient encoding during compact JWT creation. Hopefully this is temporary and we can strip out most if not all of this and modify our existing Base64.java class for simpler support since we have many less use cases than what commons-codec supports. Les Hazlewood 2023-09-21 20:55:25 -0700
  • 8cf53fc605 - Fixed code wrap formatting Les Hazlewood 2023-09-20 15:53:52 -0700
  • 86364bd51a - Groovy syntax fixes for JDK 7 Les Hazlewood 2023-09-20 15:18:32 -0700
  • 8cc29407f5 - Added license header Les Hazlewood 2023-09-20 14:45:23 -0700
  • 475c6ffcfb - Removed all usages of Serializer#serialize and Deserializer#deserialize except for deprecated implementations. All other usages now use Writer/Reader concepts - Added Jwks#json and Jwks#UNSAFE_JSON for assistance in serializing JWKs to JSON (test cases, README examples, etc) Les Hazlewood 2023-09-20 14:41:23 -0700
  • e45c27ff36 - Renamed JwtDeserializer to JsonObjectDeserializer that defaults to throwing MalformedJwtException. Added two subclasses, JwkDeserializer and JwkSetDeserializer that throws JWK and JWK Set-specific exceptions. - Changed ParserBuilder#deserializer method name to ParserBuilder#jsonReader Les Hazlewood 2023-09-20 11:16:31 -0700
  • edb397cc64 - Added license header Les Hazlewood 2023-09-19 17:51:20 -0700
  • 1bc91d7956 - Changed TokenizedJwt and TokenizedJwe interfaces and implementations to return CharSequences instead of Strings to avoid creating new Strings on the heap - Changed internal Base64 implementation to work with a CharSequence instead of a raw char[] to reduce need to create new arrays on the heap - Changed Base64Decoder generics signature from Decoder<String,byte[]> to Decoder<CharSequence,byte[]> - Decoders.BASE64 and Decoders.BASE64URL now reflect Decoder<CharSequence,byte[]> - Changed Strings#utf8 implementation to accept a CharSequence instead of a String - Added new Strings#wrap to wrap a CharSequence into a CharBuffer if necessary - Replaced not-yet-released JwtBuilder#serializer method with JwtBuilder#jsonWriter - Replaced not-yet-released JwtParserBuilder#deserializer method with JwtParserBuilder#jsonReader - Moved JwtDeserializer from io.jsonwebtoken.impl to io.jsonwebtoken.impl.io package, and updated its implementation to work with the new io.jsonwebtoken.io.Writer concept - Updated GsonSerializer, GsonDeserializer, JacksonSerializer, JacksonDeserializer, and OrgJsonSerializer and OrgJsonDeserializer implementations to use JDK 7+ 'try with resources' try block instead of try/finally Les Hazlewood 2023-09-19 16:57:00 -0700
  • 5432dcd1c5 Merge branch 'master' into iostreams Les Hazlewood 2023-09-18 16:13:45 -0700
  • 36549347e8 Fixed groovy compile error on JDK 7 Les Hazlewood 2023-09-18 16:13:01 -0700
  • cda9a137a9 Fixed groovy compile error on JDK 7 Les Hazlewood 2023-09-18 15:56:12 -0700
  • dc13b049ae Closes #837 Les Hazlewood 2023-09-18 15:36:44 -0700
  • 7805e08bff ServiceLoaders are now cached. Brian Demers 2023-09-15 12:59:50 -0400
  • a920163be4
    Closes #773 (#835) lhazlewood 2023-09-16 18:49:43 -0700
  • a2b65763e9
    Closes #816 (#836) lhazlewood 2023-09-16 18:47:33 -0700
  • d991c9e624 Closes #773 Les Hazlewood 2023-09-16 18:39:46 -0700
  • ab5038ae31 Closes #773 Les Hazlewood 2023-09-16 18:37:32 -0700
  • ce6c55e8f3 Closes #773 Les Hazlewood 2023-09-16 16:42:41 -0700
  • e9df2da272
    Added snyk open-source ratings badges to readme (#688) Micah Silverman 2023-09-16 18:32:31 -0400
  • 61820b9801
    Update README.md lhazlewood 2023-09-16 15:31:58 -0700
  • a32322dcdb
    Merge branch 'master' into snyk_badge lhazlewood 2023-09-16 15:20:28 -0700
  • fa1e32bf86
    Updated Unencoded Payload Option Table of Contents (#833) lhazlewood 2023-09-16 14:06:50 -0700
  • ec1b2e2d78 Updated Unencoded Payload Option Table of Contents Les Hazlewood 2023-09-16 14:06:14 -0700
  • 34aa33421f
    RFC7797 implementation (#832) lhazlewood 2023-09-16 13:56:13 -0700
  • 5fc6c02030 Closes #515 Les Hazlewood 2023-09-16 13:40:29 -0700
  • b6afc137de 100% code coverage Les Hazlewood 2023-09-16 10:06:44 -0700
  • f8e61bc8c2 Implementation checkpoint. Coverage not quite at 100% yet. Les Hazlewood 2023-09-15 22:27:00 -0700
  • 41634f2bd1 Implementation checkpoint. Coverage not quite at 100% yet. Les Hazlewood 2023-09-15 22:18:50 -0700
  • ae1365ac73
    ServiceLoaders are now cached. Brian Demers 2023-09-15 12:59:50 -0400
  • bf5d81cbb5
    Ensured various builder collection argument methods were semantically the same (append operations, not one append, one replace) (#830) lhazlewood 2023-09-15 09:42:44 -0700
  • 4aec1b7758 Ensured various builder collection argument methods were semantically the same (append operations, not one append, one replace) Les Hazlewood 2023-09-15 09:34:25 -0700
  • 8cb59d760b
    Support `crit` header enforcement (#829) lhazlewood 2023-09-14 17:58:50 -0700
  • 14a67b3ac7 Addressed groovy syntax resulting in a compile error on JDK 7 Les Hazlewood 2023-09-14 17:49:04 -0700
  • 9ad072de1b 'crit' header enforcement per https://www.rfc-editor.org/rfc/rfc7515.html#section-4.1.11 Les Hazlewood 2023-09-14 17:25:37 -0700
  • 0814d00aa9 - Ensured Jwts.header() and Jwts.builder().header() builders sanitized crit header values per https://www.rfc-editor.org/rfc/rfc7515.html#section-4.1.11 and https://datatracker.ietf.org/doc/html/rfc7516#section-4.1.13 before creating the final Header instance Les Hazlewood 2023-09-13 19:01:16 -0700
  • 2ca3580fd9
    impl: Renamed all Field* concepts to Parameter* to match JOSE RFCs taxonomy (#828) lhazlewood 2023-09-13 13:22:44 -0700
  • 03a19ea7af Renamed all Field* concepts to Parameter* to match JOSE RFCs taxonomy Les Hazlewood 2023-09-13 13:08:01 -0700
  • d0d80fe849
    UnsupportedKeyException changes (#826) lhazlewood 2023-09-13 11:54:04 -0700
  • a53ff63a3b Changed superclass of UnsupportedKeyException to KeyException instead of InvalidKeyException (unsupported means 'I don't know what this key is', whereas InvalidKeyExceptions mean 'the key failed validation'). An unsupported key is not necessarily invalid, it just means we don't know how to handle it. Les Hazlewood 2023-09-13 11:28:27 -0700
  • b06882b38d Changed usages of UnsupportedKeyException to only those where a given key is actually not understood. Cases where the key is not valid for the current use case was changed to throw InvalidKeyException instead to better indicate validation failure. Les Hazlewood 2023-09-13 11:23:38 -0700
  • b55f26175c
    JWK .equals and .hashCode (#823) lhazlewood 2023-09-12 20:38:01 -0700
  • 462fd6211c Adjusted JWK .equals implementatinos to only account for `kty` value and material fields (two JWKs are equal if their key material is equal). Adjusted JWK .hashCode implementation to pre-cache its value based on JwkThumpbrint fields since JWKs are immutable Les Hazlewood 2023-09-12 19:50:59 -0700
  • f60d560297
    JwkSet support (#822) lhazlewood 2023-09-12 09:55:52 -0700
  • d4040f7742 Shoring up JavaDoc, tests Les Hazlewood 2023-09-11 21:23:17 -0700
  • 310ac7b91f Added JavaDoc Les Hazlewood 2023-09-11 16:38:19 -0700
  • 9e7e604d49 - Added JwkSet, JwkSetBuilder, JwkSetParserBuilder - Added Jwks#set and Jwks#setParser static factory methods Les Hazlewood 2023-09-11 15:47:01 -0700
  • 646dbb6e6a Implementation checkpoint Les Hazlewood 2023-09-10 17:20:27 -0700
  • 124b95b747 Implementation checkpoint Les Hazlewood 2023-09-09 20:27:14 -0700
  • ffbe9477da
    Audience claim string arrays (#819) lhazlewood 2023-09-09 11:11:25 -0700
  • f44f20b7bb Fixed erroneous and/or missing JavaDoc Les Hazlewood 2023-09-09 10:52:38 -0700
  • ca72fd6ac2 Marked ClaimsMutator#audienceSingle as Deprecated (even though it's not!) to discourage its use when possible. Les Hazlewood 2023-09-09 10:43:49 -0700
  • eff24511d9 Added missing license header Les Hazlewood 2023-09-09 10:39:10 -0700
  • 59907e24f8 Ensured `aud` claim is an array by default, but allows a single string value on creation for recipients that do not understand array values: - ClaimsMutator#audience(String) now appends to the `aud` set, and may be called multiple times - Added new ClaimsMutator#audience(Collection) method for setting/full replacement - Added new ClaimsMutator#audienceSingle for setting/full replacement of single string value Les Hazlewood 2023-09-09 10:21:49 -0700
  • 524429ea3f
    Upgraded org.json dependency to latest available version 20230618 (#818) lhazlewood 2023-09-08 16:19:42 -0700
  • 4c63991286 Upgraded org.json dependency to latest available version 20230618 Les Hazlewood 2023-09-08 16:11:23 -0700
  • 847ad1332c
    New KeyOperation, KeyOperationPolicy and builder concepts (#814) lhazlewood 2023-09-08 16:03:47 -0700
  • 2af6a7e6a5 renamed JwkBuilder#operationsPolicy tp JwkBuilder#operationPolicy to be consistent with KeyOperationPolicy interface name renamed JwkParserBuilder#operationsPolicy to JwkParserBuilder#operationPolicy to be consistent with KeyOperationPolicy interface name Les Hazlewood 2023-09-08 15:46:49 -0700
  • c4eec94767 Added JwkParserBuilder#operationsPolicy to allow custom KeyOperationPolicy during parsing Les Hazlewood 2023-09-08 15:33:28 -0700
  • fddca7acb7 Added KeyOperation#isRelated and KeyOperationBuilder#related methods for defining related KeyOperation instances Added KeyOperationPolicy concept for JwkBuilder Added KeyOperationPolicyBuilder (and Jwks.OP.policy() builder method) to help create policies. Les Hazlewood 2023-09-08 15:02:57 -0700
  • a2318db8a4 Changed Jwks.OP#WRAP to WRAP_KEY and UNWRAP to UNWRAP_KEY to match RFC names Les Hazlewood 2023-09-07 11:33:59 -0700
  • 5cd955b775 Changed Jwk#getOperations and JwkBuilder#operations from methods that accepted and returned Strings to use new KeyOperation instances Added a new KeyOperationBuilder concept for creating custom KeyOperations Added a new Jwks#operation method to supply a new KeyOperationBuilder instance. Les Hazlewood 2023-09-06 21:00:55 -0700
  • a6792d938f
    Added regression tests for #365 (#812) lhazlewood 2023-09-05 18:29:55 -0700
  • d6bcb8c822 Fixed groovy syntax that fails only on JDK 7 Les Hazlewood 2023-09-05 18:17:14 -0700
  • 0fef7df9e1 Fixed groovy syntax that fails only on JDK 7 Les Hazlewood 2023-09-05 18:08:32 -0700
  • 221e8a4d89 Fixed groovy syntax line wrap that failed only on JDK 7 Les Hazlewood 2023-09-05 17:57:40 -0700
  • 1570fb96f1 Added license header Les Hazlewood 2023-09-05 17:42:33 -0700
  • 9f8a7cfb9e * Added regression tests for #365 * Removed default doDigest implementation from AbstractSecureDigestAlgorithm and put it in DefaultMacAlgorithm (where it should have been) since SignatureAlgorithms override it already Les Hazlewood 2023-09-05 17:35:04 -0700
  • e85ae717f6 * Added regression tests for #365 * Removed default doDigest implementation from AbstractSecureDigestAlgorithm and put it in DefaultMacAlgorithm (where it should have been) since SignatureAlgorithms override it already Les Hazlewood 2023-09-05 17:33:21 -0700
  • d54be182dc
    Added test case for #438 (#811) lhazlewood 2023-09-05 15:34:56 -0700
  • 7dd3d094a8 Added test case for https://github.com/jwtk/jjwt/issues/438 Les Hazlewood 2023-09-05 15:11:28 -0700
  • e19f91affb Added test case for https://github.com/jwtk/jjwt/issues/438 Les Hazlewood 2023-09-05 15:08:37 -0700