wai-extra-3.1.18: Provides some basic WAI handlers and middleware.

Safe Haskell | None
Language | Haskell2010

Network.Wai.Request

Description

Some helpers for interrogating a WAI `Request`.

Synopsis

- appearsSecure :: Request -> Bool
- guessApproot :: Request -> ByteString
- newtype RequestSizeException = RequestSizeException Word64
- requestSizeCheck :: Word64 -> Request -> IO Request

# Documentation

appearsSecure :: Request -> Bool Source #

Does this request appear to have been made over an SSL connection?

This function first checks ``isSecure``, but also checks for headers that may indicate a secure connection even in the presence of reverse proxies.

Note: these headers can be easily spoofed, so decisions which require a true SSL connection (i.e. sending sensitive information) should only use ``isSecure``. This is not always the case though: for example, deciding to force a non-SSL request to SSL by redirect. One can safely choose not to redirect when the request appears secure, even if it's actually not.

Since: 3.0.7

guessApproot :: Request -> ByteString Source #

Guess the "application root" based on the given request.

The application root is the basis for forming URLs pointing at the current application. For more information and relevant caveats, please see Network.Wai.Middleware.Approot.

Since: 3.0.7

newtype RequestSizeException Source #

see `requestSizeCheck`

Since: 3.0.15

Constructors

RequestSizeException Word64 |

#### Instances

Instances details

Exception RequestSizeException Source # |
Instance details Defined in Network.Wai.Request Methods toException :: RequestSizeException -> SomeException Source # fromException :: SomeException -> Maybe RequestSizeException Source # displayException :: RequestSizeException -> String Source # backtraceDesired :: RequestSizeException -> Bool Source #
Show RequestSizeException Source # |
Instance details Defined in Network.Wai.Request Methods showsPrec :: Int -> RequestSizeException -> ShowS Source # show :: RequestSizeException -> String Source # showList :: [RequestSizeException] -> ShowS Source #
Eq RequestSizeException Source # |
Instance details Defined in Network.Wai.Request Methods (==) :: RequestSizeException -> RequestSizeException -> Bool Source # (/=) :: RequestSizeException -> RequestSizeException -> Bool Source #
Ord RequestSizeException Source # |

Instance details

Defined in Network.Wai.Request

Methods

compare :: RequestSizeException -> RequestSizeException -> Ordering Source #

(<) :: RequestSizeException -> RequestSizeException -> Bool Source #

(<=) :: RequestSizeException -> RequestSizeException -> Bool Source #

(>) :: RequestSizeException -> RequestSizeException -> Bool Source #

(>=) :: RequestSizeException -> RequestSizeException -> Bool Source #

max :: RequestSizeException -> RequestSizeException -> RequestSizeException Source #

min :: RequestSizeException -> RequestSizeException -> RequestSizeException Source #

requestSizeCheck :: Word64 -> Request -> IO Request Source #

Check request body size to avoid server crash when request is too large.

This function first checks ``requestBodyLength``, if content-length is known but larger than limit, or it's unknown but we have received too many chunks, a `RequestSizeException` are thrown when user use ``requestBody`` to extract request body inside IO.

Since: 3.0.15