servant-0.18.2: A family of combinators for defining webservices APIs
Safe HaskellSafe-Inferred
LanguageHaskell2010

Servant.API.IsSecure

Synopsis

Documentation

| Use IsSecure whenever your request handlers need to know whether the connection to the server is secure or not. This would make the request handlers receive an argument of type IsSecure, whose value can be one of Secure (HTTPS) or NotSecure (HTTP).

Example:

>>> type API = "sensitive-data" :> IsSecure :> Get '[JSON] NationSecrets

data IsSecure Source #

Was this request made over an SSL connection?

Note that this value will not tell you if the client originally made this request over SSL, but rather whether the current connection is SSL. The distinction lies with reverse proxies. In many cases, the client will connect to a load balancer over SSL, but connect to the WAI handler without SSL. In such a case, the handlers would get NotSecure, but from a user perspective, there is a secure connection.

Constructors

Secure

the connection to the server is secure (HTTPS)

NotSecure

the connection to the server is not secure (HTTP)

Instances

Instances details
Eq IsSecure Source # 
Instance details

Defined in Servant.API.IsSecure

Ord IsSecure Source # 
Instance details

Defined in Servant.API.IsSecure

Read IsSecure Source # 
Instance details

Defined in Servant.API.IsSecure

Show IsSecure Source # 
Instance details

Defined in Servant.API.IsSecure

Generic IsSecure Source # 
Instance details

Defined in Servant.API.IsSecure

Associated Types

type Rep IsSecure :: Type -> Type #

Methods

from :: IsSecure -> Rep IsSecure x #

to :: Rep IsSecure x -> IsSecure #

HasLink sub => HasLink (IsSecure :> sub :: Type) Source # 
Instance details

Defined in Servant.Links

Associated Types

type MkLink (IsSecure :> sub) a Source #

Methods

toLink :: (Link -> a) -> Proxy (IsSecure :> sub) -> Link -> MkLink (IsSecure :> sub) a Source #

type Rep IsSecure Source # 
Instance details

Defined in Servant.API.IsSecure

type Rep IsSecure = D1 ('MetaData "IsSecure" "Servant.API.IsSecure" "servant-0.18.2-80drE78NifXC7j6gzxhw1K" 'False) (C1 ('MetaCons "Secure" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NotSecure" 'PrefixI 'False) (U1 :: Type -> Type))
type MkLink (IsSecure :> sub :: Type) a Source # 
Instance details

Defined in Servant.Links

type MkLink (IsSecure :> sub :: Type) a = MkLink sub a