mas_handlers/admin/v1/upstream_oauth_links/
mod.rs

1// Copyright 2025 New Vector Ltd.
2//
3// SPDX-License-Identifier: AGPL-3.0-only
4// Please see LICENSE in the repository root for full details.
5
6mod get;
7mod list;
8
9pub use self::{
10    get::{doc as get_doc, handler as get},
11    list::{doc as list_doc, handler as list},
12};
13
14#[cfg(test)]
15mod test_utils {
16    use mas_data_model::{
17        UpstreamOAuthProviderClaimsImports, UpstreamOAuthProviderDiscoveryMode,
18        UpstreamOAuthProviderPkceMode, UpstreamOAuthProviderTokenAuthMethod,
19    };
20    use mas_iana::jose::JsonWebSignatureAlg;
21    use mas_storage::upstream_oauth2::UpstreamOAuthProviderParams;
22    use oauth2_types::scope::{OPENID, Scope};
23
24    pub(crate) fn oidc_provider_params(name: &str) -> UpstreamOAuthProviderParams {
25        UpstreamOAuthProviderParams {
26            issuer: Some(format!("https://{name}.example.com")),
27            human_name: Some(name.to_owned()),
28            brand_name: Some(name.to_owned()),
29            scope: Scope::from_iter([OPENID]),
30            token_endpoint_auth_method: UpstreamOAuthProviderTokenAuthMethod::ClientSecretBasic,
31            token_endpoint_signing_alg: None,
32            id_token_signed_response_alg: JsonWebSignatureAlg::Rs256,
33            fetch_userinfo: false,
34            userinfo_signed_response_alg: None,
35            client_id: format!("client_{name}"),
36            encrypted_client_secret: Some("secret".to_owned()),
37            claims_imports: UpstreamOAuthProviderClaimsImports::default(),
38            discovery_mode: UpstreamOAuthProviderDiscoveryMode::default(),
39            pkce_mode: UpstreamOAuthProviderPkceMode::default(),
40            response_mode: None,
41            authorization_endpoint_override: None,
42            token_endpoint_override: None,
43            userinfo_endpoint_override: None,
44            jwks_uri_override: None,
45            additional_authorization_parameters: Vec::new(),
46            ui_order: 0,
47        }
48    }
49}