From 8ae0c59a259e954d0677be3b9902da28b236df6a Mon Sep 17 00:00:00 2001 From: Philippe Loctaux Date: Thu, 16 Mar 2023 00:05:54 +0100 Subject: [PATCH] ezidam, openid: check scopes, check response types before getting app --- Cargo.lock | 1 + crates/ezidam/src/error.rs | 4 +++ crates/ezidam/src/routes/oauth.rs | 12 ++++++-- crates/openid/Cargo.toml | 1 + crates/openid/src/lib.rs | 2 +- crates/openid/src/response_types.rs | 48 +++++++++++++++++++++++++++++ crates/openid/src/scopes.rs | 33 ++++++++++++++++++++ 7 files changed, 98 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e3751d8..8677cc6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1964,6 +1964,7 @@ version = "0.0.0" dependencies = [ "itertools", "openidconnect", + "serde", "serde_json", "thiserror", "url", diff --git a/crates/ezidam/src/error.rs b/crates/ezidam/src/error.rs index 70e0eb4..96ea2ef 100644 --- a/crates/ezidam/src/error.rs +++ b/crates/ezidam/src/error.rs @@ -43,4 +43,8 @@ impl Error { pub fn not_found(value: M) -> Self { Self::new(Status::NotFound, value) } + + pub fn bad_request(value: M) -> Self { + Self::new(Status::BadRequest, value) + } } diff --git a/crates/ezidam/src/routes/oauth.rs b/crates/ezidam/src/routes/oauth.rs index ee35d6d..1d81552 100644 --- a/crates/ezidam/src/routes/oauth.rs +++ b/crates/ezidam/src/routes/oauth.rs @@ -28,7 +28,15 @@ async fn authorize_page( flash: Option>, auth_request: AuthenticationRequest<'_>, ) -> Result