soup.hstsenforcer

Module for [HSTSEnforcer] class

Types 3

Automatic HTTP Strict Transport Security enforcing for class@Session.

A #SoupHSTSEnforcer stores HSTS policies and enforces them when required. #SoupHSTSEnforcer implements iface@SessionFeature, so you can add an HSTS enforcer to a session with [soup.session.Session.addFeature] or [soup.session.Session.addFeatureByType].

#SoupHSTSEnforcer keeps track of all the HTTPS destinations that, when connected to, return the Strict-Transport-Security header with valid values. #SoupHSTSEnforcer will forget those destinations upon expiry or when the server requests it.

When the class@Session the #SoupHSTSEnforcer is attached to queues or restarts a message, the #SoupHSTSEnforcer will rewrite the URI to HTTPS if the destination is a known HSTS host and is contacted over an insecure transport protocol (HTTP). Users of #SoupHSTSEnforcer are advised to listen to changes in the property@Message:uri property in order to be aware of changes in the message URI.

Note that #SoupHSTSEnforcer does not support any form of long-term HSTS policy persistence. See class@HSTSEnforcerDB for a persistent enforcer.

Methods
GType _gType() @property
HSTSEnforcer self()Returns `this`, for use in `with` statements.
HSTSEnforcerGidBuilder builder()Get builder for [soup.hstsenforcer.HSTSEnforcer] Returns: New builder object
string[] getDomains(bool sessionPolicies)Gets a list of domains for which there are policies in enforcer.
soup.hstspolicy.HSTSPolicy[] getPolicies(bool sessionPolicies)Gets a list with the policies in enforcer.
bool hasValidPolicy(string domain)Gets whether hsts_enforcer has a currently valid policy for domain.
bool isPersistent()Gets whether hstsenforcer stores policies persistenly. Returns: true if hstsenforcer storage is persistent or false otherwise.
void setPolicy(soup.hstspolicy.HSTSPolicy policy)Sets policy to hsts_enforcer.
void setSessionPolicy(string domain, bool includeSubdomains)Sets a session policy for domain.
gulong connectChanged(T)(T callback, Flag!"After" after = No.After) if (isCallable!T && is(ReturnType!T == void) && (Parameters!T.length < 1 || (ParameterStorageClassTuple!T[0] == ParameterStorageClass.none && is(Parameters!T[0] == soup.hstspolicy.HSTSPolicy))) && (Parameters!T.length < 2 || (ParameterStorageClassTuple!T[1] == ParameterStorageClass.none && is(Parameters!T[1] == soup.hstspolicy.HSTSPolicy))) && (Parameters!T.length < 3 || (ParameterStorageClassTuple!T[2] == ParameterStorageClass.none && is(Parameters!T[2] : soup.hstsenforcer.HSTSEnforcer))) && Parameters!T.length < 4)Connect to `Changed` signal.
Constructors
this(void * ptr, Flag!"Take" take)
this()Creates a new #SoupHSTSEnforcer.

Fluent builder for [soup.hstsenforcer.HSTSEnforcer]