auth_kit 0.1.2

Toolkit for Authentication and Authorization in Rust
Documentation
use auth_kit::auth::auth_z::Authorization;
use auth_kit::error::AuthError;
use auth_kit::model::{AuthContext, Claims, Resource};

fn main() -> Result<(), AuthError> {
    let claims = Claims {
        email: "jwt@example.com".to_string(),
        service: "admin_service".to_string(),
        scopes: vec!["admin_service.read".to_string(), "admin_service.create".to_string()],
    };
    
    let resource = Resource {
        department: "engineering".to_string(),
        required_level: 3,
    };
    
    let context = AuthContext {
        user: None,
        claims: Some(claims),
        resource: Some(resource),
    };

    let authorized = Authorization::new("SBA");
    match authorized {
        Ok(mut auth) => {
            let result = auth.authorize(&context, "admin_service", "read", None);
            match result {
                Ok(_) => println!("Access granted via SBA."),
                Err(e) => println!("Access denied via SBA: {}", e.to_string()),
            }
        },
        Err(e) => {
            println!("Error initializing Authorization: {}", e.to_string());
        }
    }

    Ok(())
}