pub struct OidcLoginConfig {
pub provider: String,
pub redirect_uri: String,
pub session_cookie: String,
pub session_ttl_s: u64,
pub post_logout_url: Option<String>,
}Expand description
SEC-05: OIDC browser login flow configuration for a route. The gateway redirects unauthenticated browser requests to the IdP, exchanges the authorization code for tokens, sets a session cookie, and validates the cookie on subsequent requests.
Fields§
§provider: StringThe OIDC provider name (must match an entry in
gateway.oidc_providers).
redirect_uri: StringThe redirect URI the IdP sends the authorization code to. This
must be a path on the gateway (e.g. /auth/callback) and must
be registered with the IdP. The gateway handles the callback
automatically when this route is matched.
The session cookie name. Default dwara_session. The cookie is
HttpOnly, Secure (when the listener is TLS), SameSite=Lax,
and carries a signed session ID.
session_ttl_s: u64Session lifetime in seconds (default 3600 = 1 hour). After this duration the cookie expires and the user must re-authenticate.
post_logout_url: Option<String>The post-logout redirect URL. When the user visits the logout
path (the redirect URI with /logout appended, e.g.
/auth/callback/logout), the session cookie is cleared and the
user is redirected to this URL. Default: the IdP’s
end_session_endpoint (from discovery) with
post_logout_redirect_uri set to the gateway’s root.
Trait Implementations§
Source§impl Clone for OidcLoginConfig
impl Clone for OidcLoginConfig
Source§fn clone(&self) -> OidcLoginConfig
fn clone(&self) -> OidcLoginConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for OidcLoginConfig
impl Debug for OidcLoginConfig
Source§impl<'de> Deserialize<'de> for OidcLoginConfig
impl<'de> Deserialize<'de> for OidcLoginConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for OidcLoginConfig
impl JsonSchema for OidcLoginConfig
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for OidcLoginConfig
impl PartialEq for OidcLoginConfig
Source§impl Serialize for OidcLoginConfig
impl Serialize for OidcLoginConfig
impl StructuralPartialEq for OidcLoginConfig
Auto Trait Implementations§
impl Freeze for OidcLoginConfig
impl RefUnwindSafe for OidcLoginConfig
impl Send for OidcLoginConfig
impl Sync for OidcLoginConfig
impl Unpin for OidcLoginConfig
impl UnwindSafe for OidcLoginConfig
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more