Skip to main content

Module security

Module security 

Source
Expand description

§RUEST Security

Authentification JWT, gardes (Guard), extracteur AuthUser, middleware HTTP.

§Démarrage rapide

use ruest::prelude::*;
use ruest::security::{SecurityConfig, JwtService, AuthUser};

let config = SecurityConfig::dev();

bootstrap_app(AppModule)?
    .with_jwt_auth(config)?   // enregistre JwtService + middleware
    .port(3000)
    .listen()
    .await?;

// Handler protégé :
async fn me(user: AuthUser) -> AppResult<Json<serde_json::Value>> {
    Ok(Json(json!({ "sub": user.subject() })))
}

Structs§

AuthContext
Contexte d’authentification injecté dans les extensions de requête Axum.
AuthUser
Utilisateur authentifié (extracteur Axum — nécessite le middleware JWT).
JwtAuthState
État partagé du middleware JWT.
JwtDevProvider
Provider DI pour enregistrer un JwtService avec crate::SecurityConfig::dev.
JwtGuard
Exige un JWT valide (contexte présent).
JwtService
Service JWT : signature et vérification des tokens (enregistrable en DI).
RolesGuard
Exige au moins un des rôles listés.
RuestClaims
Claims JWT standard RUEST (sub, roles, exp, iat).
SecurityConfig
Configuration JWT / sécurité (variables d’environnement ou builder).
SecurityConfigBuilder

Enums§

SecurityError

Traits§

Guard
Garde d’autorisation (style NestJS CanActivate).

Functions§

apply_jwt_layer
Applique le middleware JWT sur un routeur Axum.
jwt_auth_middleware
Middleware Axum : routes publiques sans token, sinon Bearer JWT obligatoire.
register_jwt_provider
Enregistre JwtService dans le conteneur DI (à appeler depuis un #[module] ou au bootstrap).
run_guards
Vérifie une liste de gardes en séquence.