Skip to main content

camel_auth/
lib.rs

1//! Authentication and authorization primitives for rust-camel.
2//!
3//! Provider-neutral OIDC auth service. Configurable claim mapping via [`ClaimsMapper`]
4//! enables any OIDC-compliant provider. Provider-specific presets live in their
5//! respective component crates (e.g. `camel-component-keycloak`).
6//!
7//! Core types (`SecurityPolicy`, `AuthorizationDecision`, `Principal`)
8//! live in `camel-api` so `camel-core` and `camel-dsl` can reference
9//! them without depending on this crate.
10
11pub mod bearer;
12pub mod bearer_token_layer;
13pub mod built_in;
14pub mod claims;
15pub mod credential_source;
16pub mod introspection;
17pub mod introspection_auth;
18pub mod jwks;
19pub mod jwt;
20pub mod native_auth;
21pub mod native_client_store;
22pub mod native_issuer;
23pub mod native_jwks;
24pub mod oauth2;
25pub mod permission;
26pub mod permission_cache;
27pub mod permission_policy;
28pub mod registry;
29pub mod token_authenticator;
30pub mod types;
31
32pub use bearer::extract_bearer_token;
33pub use bearer_token_layer::{BearerTokenLayer, BearerTokenService};
34pub use built_in::{RolePolicy, ScopePolicy};
35pub use claims::{ClaimPaths, ClaimsMapper, JsonPointerClaimsMapper};
36pub use credential_source::{CredentialSource, extract_token_multi, redact_query_params};
37pub use introspection::{
38    CachingTokenIntrospector, IntrospectionCacheOptions, IntrospectionResult, TokenIntrospector,
39};
40pub use introspection_auth::IntrospectionAuthenticator;
41pub use jwks::{Jwk, JwksProvider, RemoteJwksProvider, validate_https_public_uri};
42pub use jwt::{JwtValidator, LocalJwtValidator};
43pub use oauth2::{ClientCredentialsProvider, TokenProvider};
44pub use registry::PermissionEvaluatorRegistry;
45pub use registry::SecurityPolicyRegistry;
46pub use token_authenticator::TokenAuthenticator;
47pub use types::AuthError;
48
49pub use permission::{
50    PermissionContextConfig, PermissionDecision, PermissionEvaluator, PermissionRequest,
51    PermissionValueSource,
52};
53
54pub use permission_cache::{CachingPermissionEvaluator, PermissionCacheOptions};
55
56pub use permission_policy::PermissionPolicy;
57
58pub use native_auth::{
59    ApiKeyAuthenticator, NativeCredential, NativeCredentialSecret, StaticTokenAuthenticator,
60};
61pub use native_client_store::{M2mClient, M2mClientSecret, M2mClientStore};
62pub use native_issuer::{IssuerError, NativeSigningKey, NativeTokenIssuer, TokenResponse};
63pub use native_jwks::NativeJwksProvider;
64
65pub use camel_api::security_policy::{
66    AuthorizationDecision, PRINCIPAL_KEY, Principal, SecurityPolicy, SecurityPolicyConfig,
67};