Skip to main content

Module sso

Module sso 

Source

Re-exportsΒ§

use std::borrow::Cow; πŸ”’
use std::collections::BTreeMap; πŸ”’
use std::net::IpAddr; πŸ”’
use std::time::Duration; πŸ”’
use axum::extract::State; πŸ”’
use axum::response::Html; πŸ”’
use axum::response::IntoResponse; πŸ”’
use axum::response::Response; πŸ”’
use axum_extra::extract::cookie::Cookie; πŸ”’
use axum_extra::extract::cookie::CookieJar; πŸ”’
use axum_extra::extract::cookie::SameSite; πŸ”’
use base64::Engine as _; πŸ”’
use base64::engine::general_purpose::URL_SAFE_NO_PAD as b64; πŸ”’
use const_str::format as const_format; πŸ”’
use futures::TryFutureExt; πŸ”’
use futures::future::try_join; πŸ”’
use reqwest::header::CACHE_CONTROL; πŸ”’
use reqwest::header::CONTENT_SECURITY_POLICY; πŸ”’
use reqwest::header::CONTENT_TYPE; πŸ”’
use reqwest::header::HeaderValue; πŸ”’
use reqwest::header::REFERRER_POLICY; πŸ”’
use ruma::Mxc; πŸ”’
use ruma::OwnedMxcUri; πŸ”’
use ruma::OwnedUserId; πŸ”’
use ruma::ServerName; πŸ”’
use ruma::UserId; πŸ”’
use ruma::api::client::session::SsoRedirectAction; πŸ”’
use ruma::api::client::session::sso_callback; πŸ”’
use ruma::api::client::session::sso_callback::unstable::Response as SsoCallbackResponse; πŸ”’
use ruma::api::client::session::sso_login; πŸ”’
use ruma::api::client::session::sso_login_with_provider; πŸ”’
use ruma::api::client::uiaa::AuthType; πŸ”’
use ruma::api::error::ErrorKind; πŸ”’
use serde::Deserialize; πŸ”’
use serde::Deserialize; πŸ”’
use serde::Serialize; πŸ”’
use serde::Serialize; πŸ”’
use serde_html_form::from_str as from_form_str; πŸ”’
use serde_html_form::to_string as to_form_string; πŸ”’
use serde_json::Value as JsonValue; πŸ”’
use tuwunel_core::Err; πŸ”’
use tuwunel_core::Result; πŸ”’
use tuwunel_core::at; πŸ”’
use tuwunel_core::config::IdentityProvider; πŸ”’
use tuwunel_core::debug::INFO_SPAN_LEVEL; πŸ”’
use tuwunel_core::debug_info; πŸ”’
use tuwunel_core::debug_warn; πŸ”’
use tuwunel_core::err; πŸ”’
use tuwunel_core::info; πŸ”’
use tuwunel_core::info; πŸ”’
use tuwunel_core::is_not_equal_to; πŸ”’
use tuwunel_core::itertools::Itertools; πŸ”’
use tuwunel_core::utils; πŸ”’
use tuwunel_core::utils::content_disposition::make_content_disposition; πŸ”’
use tuwunel_core::utils::deadline_has_passed; πŸ”’
use tuwunel_core::utils::deserialize_lenient_bool; πŸ”’
use tuwunel_core::utils::hash::sha256; πŸ”’
use tuwunel_core::utils::html::escape as html_escape; πŸ”’
use tuwunel_core::utils::result::FlatOk; πŸ”’
use tuwunel_core::utils::result::LogErr; πŸ”’
use tuwunel_core::utils::stream::ReadyExt; πŸ”’
use tuwunel_core::utils::string::EMPTY; πŸ”’
use tuwunel_core::utils::timepoint_from_now; πŸ”’
use tuwunel_core::utils::url::redirect_allowlisted; πŸ”’
use tuwunel_core::warn; πŸ”’
use tuwunel_service::Services; πŸ”’
use tuwunel_service::client::read_response_capped; πŸ”’
use tuwunel_service::media::MXC_LENGTH; πŸ”’
use tuwunel_service::oauth::CODE_VERIFIER_LENGTH; πŸ”’
use tuwunel_service::oauth::Provider; πŸ”’
use tuwunel_service::oauth::SESSION_ID_LENGTH; πŸ”’
use tuwunel_service::oauth::Session; πŸ”’
use tuwunel_service::oauth::TokenResponse; πŸ”’
use tuwunel_service::oauth::UserInfo; πŸ”’
use tuwunel_service::oauth::fallback_localpart; πŸ”’
use tuwunel_service::oauth::unique_id_sub; πŸ”’
use tuwunel_service::threepid::canonicalize_email; πŸ”’
use tuwunel_service::users::PASSWORD_SENTINEL; πŸ”’
use tuwunel_service::users::Register; πŸ”’
use url::Url; πŸ”’
pub(crate) use self::uiaa::sso_complete_js_route; πŸ”’
pub(crate) use self::uiaa::sso_css_route; πŸ”’
pub(crate) use self::uiaa::sso_fallback_route; πŸ”’
use super::TOKEN_LENGTH; πŸ”’
use crate::ClientIp; πŸ”’
use crate::Ruma; πŸ”’
use crate::RumaResponse; πŸ”’
use crate::router::ACCOUNT_HEAD; πŸ”’
use crate::utils::bind_new_account_email; πŸ”’

ModulesΒ§

uiaa πŸ”’

StructsΒ§

GrantCookie πŸ”’
GrantQuery πŸ”’
Grant phase query string.

StaticsΒ§

CONFIRM_HTML πŸ”’
GRANT_SESSION_COOKIE πŸ”’

FunctionsΒ§

append_login_token πŸ”’
apply_token_response πŸ”’
bind_email πŸ”’
chain_next_idp_id πŸ”’
confirm_login_redirect πŸ”’
decide_user_id πŸ”’
decode_apple_userinfo_from_id_token πŸ”’
display_login_target πŸ”’
finalize_login_redirect πŸ”’
grant_session_cookie πŸ”’
grant_session_cookie_path πŸ”’
Path attribute for the grant-session cookie. The set and removal cookies must use the same value: a cookie is only replaced (and thus removed) when its name, domain and path all match (RFC 6265 5.3), and a Set-Cookie without an explicit path defaults to the request-URI’s directory.
handle_sso_login πŸ”’
handle_uiaa πŸ”’
ldap_user_exists πŸ”’
parse_user_id πŸ”’
redirect_trusted πŸ”’
register_user πŸ”’
set_avatar πŸ”’
sso_callback_route πŸ”’
sso_login_route πŸ”’
GET /_matrix/client/v3/login/sso/redirect
sso_login_with_provider_route πŸ”’
GET /_matrix/client/v3/login/sso/redirect/{idpId}
try_user_id πŸ”’
validate_redirect_url πŸ”’
validate_session_cookie πŸ”’