Skip to main content

AuthorizationStrategy

Trait AuthorizationStrategy 

Source
pub trait AuthorizationStrategy: Send + Sync {
    // Required method
    fn evaluate<'a>(
        &'a self,
        context: &'a DefaultAuthorizationContext,
    ) -> Pin<Box<dyn Future<Output = AuthServiceResult<AuthorizationDecision>> + 'a>>;
}
Expand description

Trait defining the core authorization strategy behavior.

This trait must be implemented by all authorization strategies. It provides the entry point for authorization evaluation.

Required Methods§

Source

fn evaluate<'a>( &'a self, context: &'a DefaultAuthorizationContext, ) -> Pin<Box<dyn Future<Output = AuthServiceResult<AuthorizationDecision>> + 'a>>

Evaluates the authorization context to determine if access should be granted.

§Arguments
  • context - The authorization context containing request information
§Returns
  • Ok(AuthorizationDecision) if evaluation reaches an allow or deny
  • Err(AuthServiceError) if evaluation cannot make a decision
§Examples
ⓘ
let strategy = StatelessAuthorizationStrategy::new(config, None)?;
let context = DefaultAuthorizationContext::of(subject, resource, action, source_ip);
match strategy.evaluate(&context).await? {
    AuthorizationDecision::Allow => proceed(),
    AuthorizationDecision::Deny(reason) => reject(reason),
}

Trait Implementations§

Source§

impl AuthorizationStrategy for Box<dyn AuthorizationStrategy>

Source§

fn evaluate<'a>( &'a self, context: &'a DefaultAuthorizationContext, ) -> Pin<Box<dyn Future<Output = AuthServiceResult<AuthorizationDecision>> + 'a>>

Evaluates the authorization context to determine if access should be granted. Read more

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl AuthorizationStrategy for Box<dyn AuthorizationStrategy>

Source§

fn evaluate<'a>( &'a self, context: &'a DefaultAuthorizationContext, ) -> Pin<Box<dyn Future<Output = AuthServiceResult<AuthorizationDecision>> + 'a>>

Implementors§