Trait tower_http::auth::require_authorization::AuthorizeRequest[][src]

pub trait AuthorizeRequest {
    type Output;
    type ResponseBody: Body;
    fn authorize<B>(&mut self, request: &Request<B>) -> Option<Self::Output>;
fn unauthorized_response<B>(
        &mut self,
        request: &Request<B>
    ) -> Response<Self::ResponseBody>; fn on_authorized<B>(
        &mut self,
        _request: &mut Request<B>,
        _output: Self::Output
    ) { ... } }
This is supported on crate feature auth only.
Expand description

Trait for authorizing requests.

Associated Types

type Output[src]

The output type of doing the authorization.

Use () if authorization doesn’t produce any meaningful output.

type ResponseBody: Body[src]

The body type used for responses to unauthorized requests.

Required methods

fn authorize<B>(&mut self, request: &Request<B>) -> Option<Self::Output>[src]

Authorize the request.

If Some(_) is returned then the request is allowed through, otherwise not.

fn unauthorized_response<B>(
    &mut self,
    request: &Request<B>
) -> Response<Self::ResponseBody>
[src]

Create the response for an unauthorized request.

Provided methods

fn on_authorized<B>(&mut self, _request: &mut Request<B>, _output: Self::Output)[src]

Callback for when a request has been successfully authorized.

For example this allows you to save Self::Output in a request extension to make it available to services further down the stack. This could for example be the “claims” for a valid JWT.

Defaults to doing nothing.

See the module docs for an example.

Implementors

impl<ResBody> AuthorizeRequest for Basic<ResBody> where
    ResBody: Body + Default
[src]

type Output = ()

type ResponseBody = ResBody

fn authorize<B>(&mut self, request: &Request<B>) -> Option<Self::Output>[src]

fn unauthorized_response<B>(
    &mut self,
    _request: &Request<B>
) -> Response<Self::ResponseBody>
[src]

impl<ResBody> AuthorizeRequest for Bearer<ResBody> where
    ResBody: Body + Default
[src]

type Output = ()

type ResponseBody = ResBody

fn authorize<B>(&mut self, request: &Request<B>) -> Option<Self::Output>[src]

fn unauthorized_response<B>(
    &mut self,
    _request: &Request<B>
) -> Response<Self::ResponseBody>
[src]