mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-02-15 23:41:57 +00:00
147 lines
4.6 KiB
Rust
147 lines
4.6 KiB
Rust
#![allow(clippy::cognitive_complexity)]
|
|
extern crate env_logger;
|
|
#[macro_use]
|
|
extern crate log;
|
|
extern crate openidconnect;
|
|
#[macro_use]
|
|
extern crate pretty_assertions;
|
|
extern crate url;
|
|
|
|
use rp_common::{
|
|
get_provider_metadata, init_log, issuer_url, register_client, CERTIFICATION_BASE_URL, RP_NAME,
|
|
};
|
|
|
|
#[macro_use]
|
|
mod rp_common;
|
|
|
|
#[test]
|
|
#[ignore]
|
|
fn rp_discovery_openid_configuration() {
|
|
const TEST_ID: &str = "rp-discovery-openid-configuration";
|
|
init_log(TEST_ID);
|
|
|
|
let _issuer_url = issuer_url(TEST_ID);
|
|
let provider_metadata = get_provider_metadata(TEST_ID);
|
|
|
|
macro_rules! log_field {
|
|
($field:ident) => {
|
|
log_container_field!(provider_metadata.$field);
|
|
};
|
|
}
|
|
|
|
log_info!(
|
|
"Successfully retrieved provider metadata from {:?}",
|
|
_issuer_url
|
|
);
|
|
log_field!(issuer);
|
|
log_field!(authorization_endpoint);
|
|
log_field!(token_endpoint);
|
|
log_field!(userinfo_endpoint);
|
|
log_field!(jwks_uri);
|
|
log_field!(registration_endpoint);
|
|
log_field!(scopes_supported);
|
|
log_field!(response_types_supported);
|
|
log_field!(response_modes_supported);
|
|
log_field!(grant_types_supported);
|
|
log_field!(acr_values_supported);
|
|
log_field!(subject_types_supported);
|
|
log_field!(id_token_signing_alg_values_supported);
|
|
log_field!(id_token_encryption_alg_values_supported);
|
|
log_field!(id_token_encryption_enc_values_supported);
|
|
log_field!(userinfo_signing_alg_values_supported);
|
|
log_field!(userinfo_encryption_alg_values_supported);
|
|
log_field!(userinfo_encryption_enc_values_supported);
|
|
log_field!(request_object_signing_alg_values_supported);
|
|
log_field!(request_object_encryption_alg_values_supported);
|
|
log_field!(request_object_encryption_enc_values_supported);
|
|
log_field!(token_endpoint_auth_methods_supported);
|
|
log_field!(token_endpoint_auth_signing_alg_values_supported);
|
|
log_field!(display_values_supported);
|
|
log_field!(claim_types_supported);
|
|
log_field!(claims_supported);
|
|
log_field!(service_documentation);
|
|
log_field!(claims_locales_supported);
|
|
log_field!(ui_locales_supported);
|
|
log_field!(claims_parameter_supported);
|
|
log_field!(request_parameter_supported);
|
|
log_field!(request_uri_parameter_supported);
|
|
log_field!(require_request_uri_registration);
|
|
log_field!(op_policy_uri);
|
|
log_field!(op_tos_uri);
|
|
|
|
log_debug!("Provider metadata: {:?}", provider_metadata);
|
|
|
|
log_info!("SUCCESS");
|
|
}
|
|
|
|
#[test]
|
|
#[ignore]
|
|
fn rp_registration_dynamic() {
|
|
const TEST_ID: &str = "rp-registration-dynamic";
|
|
init_log(TEST_ID);
|
|
|
|
let _issuer_url = issuer_url(TEST_ID);
|
|
let provider_metadata = get_provider_metadata(TEST_ID);
|
|
let registration_response = register_client(&provider_metadata, |reg| reg);
|
|
|
|
macro_rules! log_field {
|
|
($field:ident) => {
|
|
log_container_field!(registration_response.$field);
|
|
};
|
|
}
|
|
|
|
log_field!(client_id);
|
|
log_field!(client_secret);
|
|
log_field!(registration_access_token);
|
|
log_field!(registration_client_uri);
|
|
log_field!(client_id_issued_at);
|
|
log_field!(client_secret_expires_at);
|
|
log_field!(redirect_uris);
|
|
log_field!(response_types);
|
|
log_field!(grant_types);
|
|
log_field!(application_type);
|
|
log_field!(contacts);
|
|
log_field!(client_name);
|
|
log_field!(logo_uri);
|
|
log_field!(client_uri);
|
|
log_field!(policy_uri);
|
|
log_field!(tos_uri);
|
|
log_field!(jwks_uri);
|
|
log_field!(jwks);
|
|
log_field!(sector_identifier_uri);
|
|
log_field!(subject_type);
|
|
log_field!(id_token_signed_response_alg);
|
|
log_field!(id_token_encrypted_response_alg);
|
|
log_field!(id_token_encrypted_response_enc);
|
|
log_field!(userinfo_signed_response_alg);
|
|
log_field!(userinfo_encrypted_response_alg);
|
|
log_field!(userinfo_encrypted_response_enc);
|
|
log_field!(request_object_signing_alg);
|
|
log_field!(request_object_encryption_alg);
|
|
log_field!(request_object_encryption_enc);
|
|
log_field!(token_endpoint_auth_method);
|
|
log_field!(token_endpoint_auth_signing_alg);
|
|
log_field!(default_max_age);
|
|
log_field!(require_auth_time);
|
|
log_field!(default_acr_values);
|
|
log_field!(initiate_login_uri);
|
|
log_field!(request_uris);
|
|
|
|
log_debug!("Registration response: {:?}", registration_response);
|
|
|
|
assert_eq!(
|
|
format!(
|
|
"{}/{}/registration?client_id={}",
|
|
CERTIFICATION_BASE_URL,
|
|
RP_NAME,
|
|
**registration_response.client_id()
|
|
),
|
|
registration_response
|
|
.registration_client_uri()
|
|
.unwrap()
|
|
.to_string()
|
|
);
|
|
|
|
log_info!("SUCCESS");
|
|
}
|