1
0
mirror of https://github.com/matrix-org/matrix-authentication-service.git synced 2025-07-28 11:02:02 +03:00

Allow to validate provider metadata

According to the OpenID Connect Discovery 1.0 spec.
Provide the default values for fields when they are defined.
Introduce VerifiedProviderMetadata.
Rename Metadata to ProviderMetadata.
Implement Deserialize for ProviderMetadata.
This commit is contained in:
Kévin Commaille
2022-08-04 13:52:02 +02:00
committed by Quentin Gliech
parent c63345fe31
commit 222551ad7f
5 changed files with 1060 additions and 7 deletions

7
Cargo.lock generated
View File

@ -123,6 +123,12 @@ dependencies = [
"password-hash",
]
[[package]]
name = "assert_matches"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
[[package]]
name = "async-compression"
version = "0.3.14"
@ -2803,6 +2809,7 @@ dependencies = [
name = "oauth2-types"
version = "0.1.0"
dependencies = [
"assert_matches",
"chrono",
"data-encoding",
"http",

View File

@ -1 +1,2 @@
msrv = "1.60.0"
doc-valid-idents = ["OpenID", "OAuth", ".."]

View File

@ -25,7 +25,7 @@ use mas_iana::{
use mas_jose::{SigningKeystore, StaticKeystore};
use mas_router::UrlBuilder;
use oauth2_types::{
oidc::{ClaimType, Metadata, SubjectType},
oidc::{ClaimType, ProviderMetadata, SubjectType},
requests::{Display, GrantType, Prompt, ResponseMode},
scope,
};
@ -134,7 +134,7 @@ pub(crate) async fn get(
let prompt_values_supported = Some(vec![Prompt::None, Prompt::Login, Prompt::Create]);
let metadata = Metadata {
let metadata = ProviderMetadata {
issuer,
authorization_endpoint,
token_endpoint,
@ -161,7 +161,7 @@ pub(crate) async fn get(
request_parameter_supported,
request_uri_parameter_supported,
prompt_values_supported,
..Metadata::default()
..ProviderMetadata::default()
};
Json(metadata)

View File

@ -22,3 +22,6 @@ itertools = "0.10.3"
mas-iana = { path = "../iana" }
mas-jose = { path = "../jose" }
[dev-dependencies]
assert_matches = "1.5.0"

File diff suppressed because it is too large Load Diff