Enum Hsts

Source
pub enum Hsts {
    Disable,
    Enable(u32),
    IncludeSubDomains(u32),
    Preload(u32),
}
Expand description

HTTP Strict Transport Security configuration settings and max-age in seconds for the links redirector.

The max-age indicates for how long the server’s HSTS setting should be saved by browsers, with 2 years (63072000 seconds) being recommended. For preloading to work, max-age must be at least 1 year (31536000 seconds). Setting max-age to 0 will clear a browser’s HSTS setting for the redirection website on next request, allowing it to perform HTTP (without TLS) requests again.

§Caution:

The IncludeSubDomains and Preload settings may have lasting unintended effects on unrelated HTTP servers (current and future) running on subdomains of the links host, and may even render those websites unusable for months or years by requiring browsers to use HTTPS (with TLS) exclusively when doing HTTP requests to those domains. The Enable setting, however, only impacts the exact domain it is used from, so should only impact the links redirector server itself. It is recommended to start testing HSTS (especially IncludeSubDomains and Preload) with a short max-age initially, and to test any possible impact on other websites hosted on the same domain and on its subdomains.

See also:

Variants§

§

Disable

Don’t send the HTTP Strict Transport Security header

§

Enable(u32)

Send the HSTS header without the preload or includeSubDomains attributes

§

IncludeSubDomains(u32)

Send the HSTS header with the includeSubDomains attribute, but without preload

§Caution:

This may have temporary unintended effects on unrelated HTTP servers running on subdomains of the links host. Make sure that this won’t cause any problems before enabling it and try a short max-age first. More info on https://hstspreload.org/, https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security, and https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security.

§

Preload(u32)

Send the HSTS header with the preload and includeSubDomains attributes

§Caution:

This may have lasting unintended effects on unrelated HTTP servers (current and future) running on subdomains of the links host, and may even render those websites unusable for months or years.

Read https://hstspreload.org/, https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security, and https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security, and make sure that this won’t cause any problems before enabling it.

Trait Implementations§

Source§

impl Clone for Hsts

Source§

fn clone(&self) -> Hsts

Returns a copy of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Hsts

Source§

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

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

impl Default for Hsts

Source§

fn default() -> Self

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

impl PartialEq for Hsts

Source§

fn eq(&self, other: &Hsts) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Hsts

Source§

impl Eq for Hsts

Source§

impl StructuralPartialEq for Hsts

Auto Trait Implementations§

§

impl Freeze for Hsts

§

impl RefUnwindSafe for Hsts

§

impl Send for Hsts

§

impl Sync for Hsts

§

impl Unpin for Hsts

§

impl UnwindSafe for Hsts

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, dst: *mut u8)

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

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

impl<T> Instrument for T

§

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

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

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
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
§

impl<T> ErasedDestructor for T
where T: 'static,

§

impl<T> MaybeSendSync for T