pub struct WebappResolver { /* private fields */ }Expand description
A resolver designed for the webapp pattern. Pulls designation values from two sources, both supplied via context extensions:
AuthSessionfor fields the webapp authenticated (tenant, user, etc.).RequestUrlfor path segments matched by{name}placeholder patterns.
Both sources are optional per target. The resolver returns whatever it can
successfully extract; configured fields that are missing in the session,
or URL patterns that don’t match the request URL, return
ResolverError::MissingField / ResolverError::InvalidShape.
§Example
use hessra_cap_engine::WebappResolver;
let resolver = WebappResolver::builder()
.for_target("api:posts")
.from_session("tenant_id", "tenant_id")
.from_session("user", "user_subject")
.from_url_pattern("/tenants/{tenant_id}/posts/{resource_id}")
.build();Implementations§
Source§impl WebappResolver
impl WebappResolver
pub fn builder() -> WebappResolverBuilder
Trait Implementations§
Source§impl Clone for WebappResolver
impl Clone for WebappResolver
Source§fn clone(&self) -> WebappResolver
fn clone(&self) -> WebappResolver
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for WebappResolver
impl Debug for WebappResolver
Source§impl Default for WebappResolver
impl Default for WebappResolver
Source§fn default() -> WebappResolver
fn default() -> WebappResolver
Returns the “default value” for a type. Read more
Source§impl DesignationResolver for WebappResolver
impl DesignationResolver for WebappResolver
fn resolve( &self, target: &ObjectId, _operation: &Operation, ctx: &DesignationContext, ) -> Result<Vec<Designation>, ResolverError>
Auto Trait Implementations§
impl Freeze for WebappResolver
impl RefUnwindSafe for WebappResolver
impl Send for WebappResolver
impl Sync for WebappResolver
impl Unpin for WebappResolver
impl UnsafeUnpin for WebappResolver
impl UnwindSafe for WebappResolver
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more