úÎ!6÷5/     (c) Marek FajkusBSD3marek.faj@gmail.comSafe"# _wai-enforce-https?Representation of Forwarded header data All field are optionalwai-enforce-httpsParse  ByteString¯ to Forwarded header Note that this function works with the values of the header only. Extraction of value from header depends what representation of headers you're using.4In case of Wai you can extract headers as following: Ò:set -XOverloadedStrings import Network.Wai import Network.HTTP.Forwarded getForwarded req = parseForwarded <$> "forwarded" `lookup` requestHeaders req :t getForwarded getForwarded :: Request -> Maybe Forwardedwai-enforce-https Serialize . data type back to ByteString representation.(c) Marek FajkusBSD3marek.faj@gmail.comNone"#4› wai-enforce-https RESOLVERSWResolvers are function used for testing if Request is made over secure HTTPS protocol.if  is returned from Resolver7 function request is considered as being secure. For $ values redirection logic is called. wai-enforce-https Configuration r does export constructor which should not collide with ny other functions and therefore can be exposed in import Cimport Network.Wai.Middleware.EnforceHTTPS (EnforceHTTPSConfig(..))$Default configuration is recommended? but you're free to override any default value if you need to.Configuration of   can be set using : function which is preferred way for overwriting default Resolver .wai-enforce-https4Default Configuration Default resolver is proxy to Network.Wai.isSecure function uses request Host' header information to resolve hostnamestandard HTTPS port 443%redirect includes path and url paramsuses permanent redirect (301)doesn't include port in Location header id port is 443 redirects GET and HEAD methodsall other methods are resolved with 405+ (Method not Allowed) and with appropriate Allowed headerwai-enforce-https Construct  for specific  wai-enforce-https with default configuration. See  for more details.wai-enforce-https#Construct middleware with provided Resolver See Resolver section for information.wai-enforce-httpsResolver checking value of x-forwarded-proto\ HTTP header. This header is for instance used by Heroku or GCP Ingress among many others.(Request is secure if value of header is https3 otherwise request is considered not being secure.wai-enforce-https#Azure is proxying with additional  `x-arr-ssl`] header if original protocol is HTTPS. This resolver checks for the presence of this header.wai-enforce-https9Some reverse proxies (Kong) are using values similar to x-forwarded-proto‚ but are using different headers. This resolver allows you to specify name of header which should be used for the check. Like ?, request is considered as being secure if value of header is https.wai-enforce-httpsLForwarded HTTP header is relatively new standard which should replaced all x-*= adhoc headers by standardized one. This resolver is using  proto=foo1 part of the header and check for equality with https value.!More information can be found on  Chttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ForwardedMDN Complete implementation of  Forwarded is located in Network.HTTP.Forwarded module          !"#$%.wai-enforce-https-0.0.1-LxfHf6F6chR4kIvBguS2T7Network.HTTP.Forwarded#Network.Wai.Middleware.EnforceHTTPS Forwarded forwardedBy forwardedFor forwardedHostforwardedProtoparseForwardedserializeForwarded $fEqForwarded$fShowForwardedEnforceHTTPSConfig httpsIsSecure httpsHostname httpsPorthttpsIgnoreURLhttpsTemporaryhttpsSkipDefaultPorthttpsRedirectMethodshttpsDisallowStatus defaultConfig withConfigdef withResolverxForwardedProtoazurecustomProtoHeader forwarded HTTPSResolverghc-prim GHC.TypesTrueFalse"wai-3.2.1.2-ELv9GdlipUa1VN305RiY5B Network.Wai Middleware