1
0
mirror of https://github.com/matrix-org/matrix-authentication-service.git synced 2025-11-20 12:02:22 +03:00
Commit Graph

54 Commits

Author SHA1 Message Date
reivilibre
49e8fe57f4 Improve errors when MAS contacts the Synapse homeserver (#2794)
* Add some drive-by docstrings

* Change text rendering of catch_http_codes::HttpError

Using `#[source]` is unnatural here because it makes it look like
two distinct errors (one being a cause of the other),
when in reality it is just one error, with 2 parts.

Using `Display` formatting for that leads to a more natural error.

* Add constraints to `catch_http_code{,s}` methods

Not strictly required, but does two things:

- documents what kind of function is expected
- provides a small extra amount of type enforcement at the call site,
  rather than later on when you find the result doesn't implement Service

* Add a `catch_http_errors` shorthand

Nothing major, just a quality of life improvement so you don't have to
repetitively write out what a HTTP error is

* Unexpected error page: remove leading whitespace from preformatted 'details' section

The extra whitespace was probably unintentional and makes the error harder to read,
particularly when it wraps onto a new line unnecessarily

* Capture and log Matrix errors received from Synapse

* Drive-by clippy fix: use clamp instead of min().max()

* Convert `err(Display)` to `err(Debug)` for `anyhow::Error`s in matrix-synapse support module
2024-06-07 11:14:04 +00:00
Quentin Gliech
dde907758e Use OTEL semantic conventions constants for most attributes 2024-03-19 17:15:14 +01:00
Quentin Gliech
6eb6209bd8 Use rustls-platform-verifier for cert validation
This simplifies by removing the mutually exclusive `native-roots` and
`webpki-roots` features with something that is suitable for all
platforms.
2024-03-06 14:03:59 +01:00
Quentin Gliech
d20b0dc81d Fix the native-certs (and therefore docker) build 2024-02-02 14:39:24 +01:00
Quentin Gliech
aeca03a120 Upgrade rustls 2024-02-02 11:45:20 +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
54071c4969 Make the HTTP client factory reuse the underlying client
This avoids duplicating clients, and makes it so that they all share the same connection pool.
2023-09-14 16:52:01 +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
Quentin Gliech
e430e9d414 rustls: use RootCertStore.add_trust_anchors instead of deprecated RootCertStore.add_server_trust_anchors 2023-08-09 12:01:08 +02:00
Quentin Gliech
e79da4a949 Bump Rust dependencies and remove unused ones 2023-07-27 17:23:08 +02:00
Quentin Gliech
68db56c2a2 Reimplementation of a postgres-backed storage with a shared PG listener 2023-07-17 19:04:06 +02:00
Quentin Gliech
daba2299d5 Fix build with native-root feature on 2023-04-18 23:01:43 +02:00
Quentin Gliech
09270b2493 Better tracing attributes in the HTTP client 2023-04-18 14:45:43 +02:00
Quentin Gliech
08f58db08b Replace the OTEL-based tracing layer with tracing based layers 2023-04-18 14:45:43 +02:00
Quentin Gliech
8a2be43fe7 Proactively provision users on registration & sync threepids 2023-04-14 10:22:22 +02:00
Quentin Gliech
ca112d45e1 ci: Update clippy to 1.66 and fix new warnings 2022-12-16 18:16:18 +01:00
Quentin Gliech
e8c8d0bf8a Remove the ServerLayer from mas-http 2022-12-05 19:39:51 +01:00
Quentin Gliech
4227fa7a83 Add a global HTTP client factory 2022-12-05 19:39:51 +01:00
Quentin Gliech
d514a8922c Cleanup HTTP client building 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
7f9be07e8d Move the BoxCloneSyncService to mas-http 2022-12-05 19:39:51 +01:00
Quentin Gliech
c76a1dd2e7 Bump the latest axum rc 2022-11-18 14:57:22 +01:00
Quentin Gliech
3f56031795 Automate schema updates 2022-11-09 19:17:12 +01:00
Quentin Gliech
13c7d2772f Move the GraphQL schema to its own crate 2022-11-09 19:17:12 +01:00
Quentin Gliech
35e5a5a7a7 Better AWS SDK tracing 2022-11-04 09:31:50 +01:00
Quentin Gliech
a414936484 Trace AWS operations & share TLS connector with mas-http 2022-11-03 18:08:20 +01:00
Quentin Gliech
9756f3c704 Fix the default features set 2022-11-03 15:19:49 +01:00
Jonas Platte
cf6d5a076a Use new tuple Layer impls instead of ServiceBuilder (#475)
Co-authored-by: Quentin Gliech <quenting@element.io>
2022-10-17 16:48:12 +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
0829ab7e27 Fix imports used by feature-gated code 2022-10-17 12:47:20 +02:00
Quentin Gliech
7e288c0c5d Have the listeners names in the metrics and traces
Also refactors the OTEL layer to have a separate metrics logic
2022-10-17 11:39:45 +02:00
Quentin Gliech
c548417752 Refactor listeners building 2022-10-17 11:39:45 +02:00
Quentin Gliech
e9fd0eb36a Move the in-flight counter decrement to a drop guard 2022-09-28 11:13:53 +02:00
Quentin Gliech
56fdb64a84 HTTP metrics & other stuff 2022-09-28 11:13:53 +02:00
Quentin Gliech
7b819ffa8b Simplify the HTTP client building
Also supports loading the WebPKI roots instead of the native ones for
TLS
2022-09-27 19:05:25 +02:00
Kévin Commaille
348044afdc Make HTTP request layers convert to Bytes
Add layer to convert a request's Bytes to a Body.
2022-08-23 12:25:38 +02:00
Quentin Gliech
95eba8f88b Apply suggestions from code review
Co-authored-by: Kévin Commaille <76261501+zecakeh@users.noreply.github.com>
2022-08-19 10:51:24 +02:00
Quentin Gliech
185ff622f9 Gate some crates behind features in mas-http 2022-08-19 10:51:24 +02:00
Quentin Gliech
9fe541f7b6 Add a layer to catch HTTP error codes 2022-08-19 10:51:24 +02:00
Quentin Gliech
d94442f972 Layer to application/x-www-form-urlencoded bodies 2022-08-19 10:51:24 +02:00
Quentin Gliech
398379e21b Better Tower layers 2022-08-19 10:51:24 +02:00
Kévin Commaille
5c8b442747 Fix new clippy 0.1.63 warnings 2022-08-12 11:05:21 +02:00
Quentin Gliech
c1ed726dc8 Enable the clippy::str_to_string lint 2022-08-08 10:06:20 +02:00
Quentin Gliech
4870d1e899 Fix some false-positive clippy lints
Those were introduced in clippy 1.62 (under clippy::pedantic) and are in
proc-macro generated code
2022-07-01 16:36:35 +02:00
Quentin Gliech
f4ff7c296c More OTEL attributes on HTTP requests 2022-04-08 14:16:34 +02:00
Quentin Gliech
bc24e30867 Add CORS headers to API-like routes 2022-04-07 16:25:42 +02:00
Quentin Gliech
b43817e66c Attach remote and local address to HTTP server/client spans 2022-04-07 11:52:43 +02:00
Quentin Gliech
9b5ecd5bc4 Make the ServerLayer work properly with axum 2022-04-06 17:35:29 +02:00
Quentin Gliech
b81f4caace Better OpenTelemetry tracer 2022-02-24 16:03:37 +01:00
Quentin Gliech
035e2d7829 Implement private_key_jwks client authentication
This involves a lot of things, including:
 - better VerifyingKeystore trait
 - better errors in the JOSE crate
 - getting rid of async_trait in some JOSE traits
2022-02-17 15:42:44 +01:00