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§
Sourcefn evaluate<'a>(
&'a self,
context: &'a DefaultAuthorizationContext,
) -> Pin<Box<dyn Future<Output = AuthServiceResult<AuthorizationDecision>> + 'a>>
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 denyErr(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>
impl AuthorizationStrategy for Box<dyn AuthorizationStrategy>
Source§fn evaluate<'a>(
&'a self,
context: &'a DefaultAuthorizationContext,
) -> Pin<Box<dyn Future<Output = AuthServiceResult<AuthorizationDecision>> + 'a>>
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".