Skip to main content

JwtSection

Struct JwtSection 

Source
pub struct JwtSection {
    pub secret: String,
    pub secret_file: Option<String>,
    pub expiration_minutes: u64,
}
Expand description

JWT authentication section.

appsettings keys are PascalCase: Jwt.Secret and Jwt.ExpirationMinutes (or APP__Jwt__ExpirationMinutes). ExpirationMinutes drives the lifetime of tokens minted by the default ITokenIssuer that HostBuilder::add_authentication() registers.

§Where the signing secret comes from (XR-2)

First non-empty source wins, evaluated at host startup:

  1. APP__Jwt__Secret / JWT_SECRET env vars — applied over the JSON during load_appsettings, so they arrive here as Secret;
  2. Jwt.Secret in appsettings.json (or a code-level useOptions override);
  3. Jwt.SecretFile — a path to a file holding the secret, read by rust_webx_host::auth_jwt::apply_jwt_secret_file. The file must be at least 32 bytes of non-whitespace content and, on Unix, must not grant group/other permissions (chmod 600); a missing, unreadable, too short or over-permissive file fails host startup instead of running with a broken key.

Fields§

§secret: String

HMAC secret for signing/verifying JWT tokens.

§secret_file: Option<String>

Optional path to a file holding the HMAC secret.

Only used when Secret is empty, so an explicit secret (env or JSON) always wins and existing appsettings keep working unchanged. The framework does not create the file: provisioning the secret is an operator/installer concern. DPAPI-wrapped secrets are not supported by this release.

§expiration_minutes: u64

Lifetime of freshly issued tokens, in minutes. Default: 60.

0 falls back to the default: a zero lifetime would only mint tokens that are already expired.

Trait Implementations§

Source§

impl Clone for JwtSection

Source§

fn clone(&self) -> JwtSection

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for JwtSection

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for JwtSection

Source§

fn default() -> JwtSection

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for JwtSection

Source§

fn deserialize<__D>( __deserializer: __D, ) -> Result<JwtSection, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. 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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> IAppOptions for T
where T: for<'de> Deserialize<'de> + Default + Send + Sync + 'static,

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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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