Commit graph

98 commits

Author SHA1 Message Date
Vladislav Manchev
62b75a8c72 Fix tonic test 2023-11-11 14:42:19 +01:00
Vladislav Manchev
77949d6a3a Fix tests 2023-11-11 14:42:19 +01:00
Vladislav Manchev
a7d2830dd1 - Update jsonwebtoken to latest version
- Update key algorithm handling when initializing key data
2023-11-11 14:42:19 +01:00
cduvray
4a29bdfbc6 test: test tokens without with and without audiences
- prepares for jsonwebtoken update
2023-11-07 07:34:05 +01:00
cduvray
c5f73d43d4 test: generate token with and witout aud 2023-11-06 23:14:12 +01:00
cduvray
d3ccceef2c feat(claims): make RegisteredClaims serializable (fixes #38) 2023-11-06 23:14:12 +01:00
cduvray
6897633c7f chore: release 0.12.0 2023-10-14 13:55:34 +02:00
cduvray
4cabc9777d test: add a test of from_jwks_text 2023-10-12 07:45:32 +02:00
Sjoerd Simons
ef8ac07271 Add support for reading keys from a static JWKS
Allow creating authorizer from JWKS files similar to other static
certificates.

Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
2023-10-08 08:51:09 +02:00
cduvray
6e19f31c77 refactor: ClaimCheckerFn (simplification) 2023-09-30 16:10:29 +02:00
cduvray
b42aab8d31 feat: claim checker accepts closures
chore: remove Sync (not needed)

chore: simplify
2023-09-30 16:10:29 +02:00
cduvray
5284ff72aa refactor: JwtAuthorizer -> AuthorizerBuilder
- renaming
- type JwtAuthorizer for backward compatibility
2023-09-18 08:30:14 +02:00
cduvray
4a3077fa3a refactor: extract JwtAuthorizer in builder.rs
- JwtAuthorizer is in fact a builder, it may be renamed in future
2023-09-10 09:01:51 +02:00
cduvray
850bab9a0a refactor: internal renaming (simplifications)
- AsyncAuthorizationLayer -> AuthorizationLayer
- AsyncAuthorizationService -> AuthorizationService
- AsyncAuthorizer (trait) -> Authorize
2023-09-10 09:00:56 +02:00
cduvray
310444007d chore: release 0.11.0 2023-09-06 07:32:58 +02:00
cduvray
6adce03c17 feat: implement into_layer for Arc<...> 2023-09-05 07:43:25 +02:00
cduvray
6f2ca786c0 fix: ci test (pinned: 1.68)
- minimal rust version 1.68 (wiremock issue)
2023-09-04 18:59:44 +02:00
cduvray
c27f38138a fix: clippy warnings 2023-09-04 08:52:15 +02:00
cduvray
0738ec13ea chore: deps update 2023-08-25 08:08:33 +02:00
cduvray
cf6e3270b2 doc: multiple authorizers 2023-08-23 08:16:55 +02:00
cduvray
cc7969db08 chore: merge 'upstream/main' into multiple-authorizers2 2023-08-22 07:51:43 +02:00
cduvray
940acb17a1 feat: optional claim extraction (fixes #12)
- error 401 rather than INTERNAL_SERVER_ERROR, when no claims exist (no layer in front of the handler)
- do not log error
- tests
2023-08-22 07:43:30 +02:00
cduvray
a8ea0288cd tests: (jwt_auth_to_layer) more information in case of falure 2023-08-20 08:04:30 +02:00
cduvray
20f7eff01e refactor: AsyncAuthorizer::authorize, map - > filter_map 2023-08-19 14:21:11 +02:00
cduvray
e815d35a55 refactor: JwtAuthorizer::IntoLayer -> Authorizer::IntoLayer
- better error management (avoids composite errors when transforming multiple builder into layer)
2023-08-18 07:48:53 +02:00
cduvray
3d5367da88 fix: tonic/clippy errors 2023-08-14 08:04:53 +02:00
cduvray
efa378b3bf feat: implement IntoLayer for slices (IntoIter) 2023-08-14 08:04:53 +02:00
cduvray
36bc0fca7d doc: multi authorizer 2023-08-14 08:04:53 +02:00
cduvray
50c2ecac38 refactor: simplification ToAuthorizationLayer -> IntoLayer 2023-08-14 08:02:56 +02:00
cduvray
0fbdc0df84 test: add multiple authorizer tests 2023-08-14 08:02:56 +02:00
cduvray
603c042ee3 refactor: move jwt_source to Authorizer
allows multiple sorces with multiple authorizers
2023-08-14 08:02:56 +02:00
cduvray
55c4f7cc16 chore: clippy 2023-08-14 08:02:56 +02:00
cduvray
d7d945c075 feat: ToAuthorizationLayer 2023-08-14 08:02:56 +02:00
cduvray
57fbc6e399 feat: multiple auths per AsyncAuthorizationService 2023-08-14 08:02:56 +02:00
cduvray
ae1a29ed10 chore: release 0.10.1 2023-07-11 08:36:44 +02:00
cduvray
a869c25538 refactor: NumericDate.inner replaced by From<NumericDate>
- "inner" should be inner and not public, I think From trait implementation looks nicer
- tests added
2023-07-10 09:00:05 +02:00
cduvray
157cdfa396 chore: Merge branch 'NotNorom/main' into main 2023-07-10 08:15:30 +02:00
cduvray
b96c4f323a fix(claims): impl. of iter for OneOrArray 2023-07-09 16:03:00 +02:00
cduvray
70ce996275 fix(claims): aud can a string or an array of strings
fixes #26
2023-07-09 16:03:00 +02:00
Andre Julius
9a4751ef59 Add getter for inner timestamp for NumericDate 2023-06-26 17:17:25 +02:00
Andre Julius
70d1ac3786 Add support for time crate. 2023-06-26 17:17:03 +02:00
cduvray
7f9ad54694 chore: release 0.10.0 2023-05-19 09:14:53 +02:00
cduvray
d3fc883006 feat: claims 2023-05-18 17:13:29 +02:00
cduvray
93325dce96 chore: Merge 'sjoerdsimons/use-ready-inner-service'
- containing 2 PRs: #21, #19
2023-05-17 08:24:54 +02:00
Cyril Plisko
7fc800dbc4
feat: Allow different choices of TLS support (#6)
Allow same TLS options as underlying `reqwest` crate
2023-05-02 08:16:24 +02:00
Sjoerd Simons
28df895754 feature: tests readyness handling
Use a Tower Buffer service/layer to verify the crate handles inner
service readyness correctly as the buffer service will panic when being
called if it's not ready

Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
2023-04-22 15:03:19 +02:00
Sjoerd Simons
1cec99e522 fix: Ensure the ready inner service is used
Cloning the inner service to use in call can mean a not-ready clone gets
used which violates the tower service preconditions. Replace the cloned
service with the ready service to ensure the right copy gets used. See
https://docs.rs/tower/0.4.13/tower/trait.Service.html#be-careful-when-cloning-inner-services
for more details

Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
2023-04-22 14:56:31 +02:00
Sjoerd Simons
89f795368c features: Add integration test for tonic support
Add an integration tests for tonic in such a way that it avoids having
to create a build.rs with tonic code generation; As such it hand-codes
some parts of the tonic service implementation which is normally
code-generated. This also simply tests successfull and failed auth
without validating other authorization functionality as that's not
different between usage in tonic and axum

Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
2023-04-22 14:36:41 +02:00
Sjoerd Simons
5f3a08c4c7 feat: Add support for tonic
Tonic and Axum are quite closely related; From a tower perspective the
main difference is in the Error type in the body for their Response.

This refactor the code a little bit and add conversions from AuthError
to a tonic's Response such that the exact same code can be used by both
Axum and tonic services

Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
2023-04-22 14:36:41 +02:00
cduvray
f45568a044 chore: release 0.9.0 2023-04-14 07:59:38 +02:00