You've already forked authentication-service
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:
committed by
Quentin Gliech
parent
c63345fe31
commit
222551ad7f
7
Cargo.lock
generated
7
Cargo.lock
generated
@ -123,6 +123,12 @@ dependencies = [
|
|||||||
"password-hash",
|
"password-hash",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "assert_matches"
|
||||||
|
version = "1.5.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "async-compression"
|
name = "async-compression"
|
||||||
version = "0.3.14"
|
version = "0.3.14"
|
||||||
@ -2803,6 +2809,7 @@ dependencies = [
|
|||||||
name = "oauth2-types"
|
name = "oauth2-types"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"assert_matches",
|
||||||
"chrono",
|
"chrono",
|
||||||
"data-encoding",
|
"data-encoding",
|
||||||
"http",
|
"http",
|
||||||
|
@ -1 +1,2 @@
|
|||||||
msrv = "1.60.0"
|
msrv = "1.60.0"
|
||||||
|
doc-valid-idents = ["OpenID", "OAuth", ".."]
|
@ -25,7 +25,7 @@ use mas_iana::{
|
|||||||
use mas_jose::{SigningKeystore, StaticKeystore};
|
use mas_jose::{SigningKeystore, StaticKeystore};
|
||||||
use mas_router::UrlBuilder;
|
use mas_router::UrlBuilder;
|
||||||
use oauth2_types::{
|
use oauth2_types::{
|
||||||
oidc::{ClaimType, Metadata, SubjectType},
|
oidc::{ClaimType, ProviderMetadata, SubjectType},
|
||||||
requests::{Display, GrantType, Prompt, ResponseMode},
|
requests::{Display, GrantType, Prompt, ResponseMode},
|
||||||
scope,
|
scope,
|
||||||
};
|
};
|
||||||
@ -134,7 +134,7 @@ pub(crate) async fn get(
|
|||||||
|
|
||||||
let prompt_values_supported = Some(vec![Prompt::None, Prompt::Login, Prompt::Create]);
|
let prompt_values_supported = Some(vec![Prompt::None, Prompt::Login, Prompt::Create]);
|
||||||
|
|
||||||
let metadata = Metadata {
|
let metadata = ProviderMetadata {
|
||||||
issuer,
|
issuer,
|
||||||
authorization_endpoint,
|
authorization_endpoint,
|
||||||
token_endpoint,
|
token_endpoint,
|
||||||
@ -161,7 +161,7 @@ pub(crate) async fn get(
|
|||||||
request_parameter_supported,
|
request_parameter_supported,
|
||||||
request_uri_parameter_supported,
|
request_uri_parameter_supported,
|
||||||
prompt_values_supported,
|
prompt_values_supported,
|
||||||
..Metadata::default()
|
..ProviderMetadata::default()
|
||||||
};
|
};
|
||||||
|
|
||||||
Json(metadata)
|
Json(metadata)
|
||||||
|
@ -22,3 +22,6 @@ itertools = "0.10.3"
|
|||||||
|
|
||||||
mas-iana = { path = "../iana" }
|
mas-iana = { path = "../iana" }
|
||||||
mas-jose = { path = "../jose" }
|
mas-jose = { path = "../jose" }
|
||||||
|
|
||||||
|
[dev-dependencies]
|
||||||
|
assert_matches = "1.5.0"
|
||||||
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user