Skip to main content

Builder

Struct Builder 

Source
pub struct Builder { /* private fields */ }
Expand description

Configures an Adapter. Start one with Adapter::builder.

Implementations§

Source§

impl Builder

Source

pub fn auth_server_issuer(self, issuer: impl Into<String>) -> Self

The expected iss of the auth API’s tokens. Defaults to the auth server URL. Set it when this server reaches the API at another URL than the issuer it advertises.

Source

pub fn audience(self, audience: impl Into<String>) -> Self

The expected aud of the auth API’s tokens. The auth API sets it to its issuer, so it defaults to the issuer.

Source

pub fn cookie_secret(self, secret: impl Into<String>) -> Self

Signs the session cookies. At least 32 bytes. Required.

Source

pub fn service_secret(self, secret: impl Into<String>) -> Self

Signs the service tokens the auth API trusts this adapter by. It holds the same value as the API’s API_SERVICE_TOKEN; apps conventionally read it from SEAMLESS_SERVICE_TOKEN. At least 32 bytes. Required.

Source

pub fn jwks_kid(self, kid: impl Into<String>) -> Self

The kid header on service tokens. Defaults to dev-main, a placeholder.

Source

pub fn cookie_domain(self, domain: impl Into<String>) -> Self

The cookie Domain attribute. None by default.

Source

pub fn insecure_cookies(self, insecure: bool) -> Self

Drops the Secure attribute, for local development over plain HTTP.

Source

pub fn same_site(self, same_site: SameSite) -> Self

The cookie SameSite attribute. Defaults to None, or Lax with insecure_cookies.

Source

pub fn allowed_origins<I, S>(self, origins: I) -> Self
where I: IntoIterator<Item = S>, S: Into<String>,

The only cross-origin callers allowed to change state while cookies are SameSite=None.

Session cookie names. Default seamless-access and seamless-refresh.

Sign-in flow cookie names. Both default to seamless-ephemeral.

Source

pub fn deliver<F, Fut, E>(self, deliver: F) -> Self
where F: Fn(Delivery) -> Fut + Send + Sync + 'static, Fut: Future<Output = Result<(), E>> + Send + 'static, E: Into<DeliveryError>,

Sends OTP codes and magic links through the application’s own transports. With it, the adapter asks the auth API for the message instead of having the API send it. A delivery error answers the request with 502 delivery_failed.

Source

pub fn resolve_client_ip<F>(self, resolve: F) -> Self
where F: Fn(&HeaderMap, Option<IpAddr>) -> Option<IpAddr> + Send + Sync + 'static,

Resolves the end user’s address from the request headers and the connecting peer. Defaults to the peer. Behind a proxy, use trusted_proxies.

Source

pub fn trusted_proxies(self, proxies: TrustedProxies) -> Self

Resolves the end user’s address through these proxies.

Source

pub fn disable_manifest_fetch(self, disable: bool) -> Self

Uses only the manifest bundled with this version instead of fetching the auth API’s on the first request.

Source

pub fn http_client(self, client: Client) -> Self

The client for calls to the auth API. The default has a 15 second timeout and follows no redirects. A client that follows redirects would carry the service token to wherever the auth API pointed it.

Source

pub fn build(self) -> Result<Adapter, BuildError>

Validates the configuration and returns the adapter.

Trait Implementations§

Source§

impl Debug for Builder

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more