Skip to main content

soma_auth/
lib.rs

1//! Shared OAuth, token, and HTTP authorization primitives for Soma runtimes.
2
3// Render per-item feature-requirement badges when rustdoc runs on nightly with
4// `--cfg docsrs` (docs.rs posture; locally via `cargo xtask doc --docsrs-cfg`).
5// Inert under the stable CI doc gate: stable rustdoc never sets `docsrs`.
6#![cfg_attr(docsrs, feature(doc_auto_cfg))]
7#![allow(deprecated)]
8
9pub(crate) mod aead;
10pub mod at_rest;
11#[cfg(feature = "http-axum")]
12pub mod auth_context;
13pub mod authelia;
14#[cfg(feature = "http-axum")]
15pub mod authorize;
16#[cfg(feature = "http-axum")]
17pub mod cimd;
18pub mod config;
19pub mod error;
20pub mod github;
21pub mod google;
22pub mod jwt;
23#[cfg(feature = "http-axum")]
24pub mod metadata;
25#[cfg(feature = "http-axum")]
26pub mod middleware;
27pub mod oauth_provider;
28pub(crate) mod oidc;
29pub(crate) mod provider_http;
30#[cfg(feature = "http-axum")]
31pub mod redirect_uri;
32#[cfg(feature = "http-axum")]
33pub mod registration;
34#[cfg(feature = "http-axum")]
35pub mod revoke;
36#[cfg(feature = "http-axum")]
37pub mod routes;
38#[cfg(feature = "http-axum")]
39pub mod session;
40pub mod sqlite;
41pub mod state;
42#[cfg(feature = "http-axum")]
43pub mod token;
44// OAuth 2.1 client authentication (client_secret_basic / private_key_jwt) and
45// the client-credentials + jwt-bearer machine grants. Wired into the token
46// endpoint by `token::prepare_client_credentials`, `token::authenticate_client`,
47// and `token::machine_client_grant`.
48#[cfg(feature = "http-axum")]
49mod token_client_auth;
50pub mod types;
51#[cfg(feature = "upstream-oauth-rmcp")]
52pub mod upstream;
53pub mod util;
54
55#[cfg(feature = "http-axum")]
56pub use auth_context::{AuthContext, auth_context, www_authenticate_value};
57#[cfg(feature = "http-axum")]
58pub use middleware::{ActorKeyDeriver, AuthLayer, AuthService, parse_bearer_token, tokens_equal};
59
60#[cfg(test)]
61pub mod test_support;