Commit Graph

96 Commits

Author SHA1 Message Date
Quentin Gliech 3f66940090 Sort client registration metadata fields before hashing 2025-03-26 15:41:04 +01:00
Quentin Gliech 4294dc86cd Ensure client metadata hashing is stable
This is done by using the indexmap crate to preserve insertion order for
localized fields.
2025-03-25 15:00:48 +01:00
Quentin Gliech 5c13757e1d Deduplicate client registrations by hashing the metadata 2025-03-25 15:00:23 +01:00
Quentin Gliech 5a4807cd5f Replace data-encoding with base64ct 2025-03-25 13:41:58 +01:00
Olivier 'reivilibre 910630c9b8 Use DurationSeconds 2025-03-17 10:29:54 +00:00
Olivier 'reivilibre 86a9ad394c Add expires_in to introspection responses
Closes #4224

Corresponds to: https://github.com/element-hq/synapse/pull/18231
2025-03-17 09:41:29 +00:00
Quentin Gliech 7c9bb73f67 Merge remote-tracking branch 'origin/main' into quenting/compat-device-id 2025-03-04 13:33:09 +01:00
Quentin Gliech 3d2b67a0b2 Upgrade to Rust 1.85 and edition 2024 2025-02-21 16:15:02 +01:00
Quentin Gliech 9cdc3b9f37 Allow compat session devices to have spaces 2025-02-19 17:55:18 +01:00
Mathieu Velten 56edcb4e52 Add fetch_userinfo to upstream SSO provider (#3363) 2024-11-26 15:01:03 +00:00
Quentin Gliech 63e6e98083 Remove most doctests 2024-10-29 12:37:59 +01:00
Quentin Gliech 847ccf8bb4 Move the remaining mentions of matrix-org to element-hq 2024-09-10 14:28:55 +02:00
Quentin Gliech ed4b6c42a7 Remove (C) 2024-09-10 14:28:55 +02:00
Quentin Gliech f6bb100c0a License headers change 2024-09-05 13:25:42 +02:00
Quentin Gliech 7e30daf83e Replace parse-display with manual Display/FromStr impls 2024-03-19 16:38:46 +01:00
Kévin Commaille 4eeedbef31 Add account management URL for clients
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2024-03-19 15:05:27 +01:00
Quentin Gliech 61a69f5af4 Upgrade chrono and replace deprecated methods usage 2024-03-18 17:26:40 +01:00
Quentin Gliech 7d9d97a006 Implement the device access token request 2024-02-02 18:01:51 +01:00
Quentin Gliech 50654d2e40 Implement the device code authorisation request 2024-02-02 18:01:51 +01:00
Quentin Gliech a0f5f3c642 Enable clippy lints on a workspace level
This enables a lot more lints than before in some crates, so this fixed a lot of warnings as well.
2023-12-05 17:20:42 +01:00
Quentin Gliech aeb379eee9 oauth2-types: Only require redirect_uris & change the default response type for the auth code grant and implicit grant 2023-09-06 09:35:34 +02:00
Quentin Gliech 542d0a6073 Implement the client credentials grant 2023-09-06 09:35:34 +02:00
Quentin Gliech 17e28f56c1 Upgrade Rust to 1.72.0
Fixes new clippy errors and upgrade other tools
2023-08-28 18:05:56 +02:00
Kévin Commaille 7c2e691175 Add client-side support for software statement, ID and version
According to RFC7591

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-08-08 18:20:22 +02:00
Kévin Commaille ba7d17f25c Add client-side support for RP-Initiated logout
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
2023-08-08 18:14:04 +02:00
Doug 7aae66e182 Make ClientErrorCode.error_description optional. 2023-05-09 19:10:19 +02:00
Quentin Gliech d34e01fc67 Provision and delete Matrix devices in OAuth sessions 2023-04-24 10:42:38 +02:00
Quentin Gliech 17471c651e handlers: add tests for the token endpoint
This also simplifies the way we issue tokens in tests
2023-02-22 19:38:01 +01:00
Quentin Gliech 543b4b229f Support for token revocation 2023-02-21 12:06:30 +01:00
Quentin Gliech 792d3c793b Convert many match/if expressions to let-else 2023-02-01 10:37:04 +01:00
Quentin Gliech 09a567ab17 storage: OAuth2 client repository 2023-01-04 16:30:32 +01:00
Kévin Commaille 01a7febee2 Don't enforce RS256 ID Token signing alg in provider metadata 2022-12-18 16:02:48 +01:00
Quentin Gliech ca112d45e1 ci: Update clippy to 1.66 and fix new warnings 2022-12-16 18:16:18 +01:00
Quentin Gliech bd93074076 clippy: fix warnings in tests 2022-12-08 15:29:15 +01:00
Quentin Gliech d58dab702b oauth2-types: urn:ietf:params:oauth:grant-type:jwt-bearer 2022-12-05 19:39:51 +01:00
Quentin Gliech bedcf44741 WIP: upstream OIDC provider support 2022-12-05 19:39:51 +01:00
Quentin Gliech 95a879585b Make the OIDC issuer a string instead of a URL 2022-12-02 18:04:07 +01:00
Kévin Commaille db25574a96 Make sure Scope and InvalidScope are reexported from mas-oidc-client 2022-12-01 10:45:38 +01:00
Kévin Commaille 66055b044e Make sure all types of oauth2-types are documented 2022-12-01 10:45:38 +01:00
Kévin Commaille c590e8df92 Don't leak secrets in requests Debug format 2022-11-21 16:12:35 +01:00
Kévin Commaille 51515358f7 Make more enum types accept unknown values 2022-10-17 14:15:35 +02:00
Kévin Commaille 10297d29bb Make Scope use a BTreeSet internally 2022-10-17 14:12:59 +02:00
Kévin Commaille 99f2ca3d57 Derive Clone for http requests structs
So they don't prevent a Service from implementing Clone.
2022-10-17 12:47:43 +02:00
Kévin Commaille 954e163936 Fix parsing and deserialization of AuthenticationMethodOrAccessTokenType 2022-09-28 13:43:39 +02:00
Kévin Commaille 80d317f23c Add variants for unknown values on mas-iana types
Remove the Copy derive and mark enums as non-exhaustive.
2022-09-28 13:43:39 +02:00
Kévin Commaille 1bbd2c2970 Allow access token types in introspection auth methods 2022-09-27 19:11:32 +02:00
Kévin Commaille 940ab48819 Add types for the Device Authorization flow 2022-09-16 11:47:31 +02:00
Kévin Commaille fca6cfa393 Use ResponseType that doesn't care about tokens order 2022-09-13 15:15:30 +02:00
Kévin Commaille c4e495a84a Properly implement Display and FromStr for oauth2-types enums
Use SerializeDisplay and DeserializeFromStr derives.
Add tests for serialize and deserialize implemntations.
2022-09-12 15:44:15 +02:00
Kévin Commaille 94ba03a273 Add more variants to GrantType 2022-09-12 11:06:45 +02:00