mod request;
mod response;
use openauth_core::plugin::AuthPlugin;
use serde_json::json;
pub const UPSTREAM_PLUGIN_ID: &str = "bearer";
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq)]
pub struct BearerOptions {
pub require_signature: bool,
}
pub fn bearer() -> AuthPlugin {
bearer_with_options(BearerOptions::default())
}
pub fn bearer_with_options(options: BearerOptions) -> AuthPlugin {
AuthPlugin::new(UPSTREAM_PLUGIN_ID)
.with_version(crate::VERSION)
.with_options(json!({
"require_signature": options.require_signature,
}))
.with_on_request(move |context, request| request::handle(context, request, options))
.with_on_response(response::handle)
}