From 038abb433d8621e80086f13c814ee849cebcaa82 Mon Sep 17 00:00:00 2001 From: aaron levin Date: Wed, 17 Feb 2016 20:59:58 +0100 Subject: [PATCH] Add general Authentication combinators --- servant/servant.cabal | 1 + servant/src/Servant/API.hs | 4 ++++ servant/src/Servant/API/Auth.hs | 12 ++++++++++++ 3 files changed, 17 insertions(+) create mode 100644 servant/src/Servant/API/Auth.hs diff --git a/servant/servant.cabal b/servant/servant.cabal index 56e4580e..a83d4830 100644 --- a/servant/servant.cabal +++ b/servant/servant.cabal @@ -26,6 +26,7 @@ source-repository head library exposed-modules: Servant.API + Servant.API.Auth Servant.API.Alternative Servant.API.BasicAuth Servant.API.Capture diff --git a/servant/src/Servant/API.hs b/servant/src/Servant/API.hs index 5dda312c..fc70272f 100644 --- a/servant/src/Servant/API.hs +++ b/servant/src/Servant/API.hs @@ -40,6 +40,9 @@ module Servant.API ( -- * Response Headers module Servant.API.ResponseHeaders, + -- * General Authentication + module Servant.API.Auth, + -- * Untyped endpoints module Servant.API.Raw, -- | Plugging in a wai 'Network.Wai.Application', serving directories @@ -55,6 +58,7 @@ module Servant.API ( import Servant.API.Alternative ((:<|>) (..)) import Servant.API.BasicAuth (BasicAuth,BasicAuthData(..)) +import Servant.API.Auth (AuthProtect) import Servant.API.Capture (Capture) import Servant.API.ContentTypes (Accept (..), FormUrlEncoded, FromFormUrlEncoded (..), JSON, diff --git a/servant/src/Servant/API/Auth.hs b/servant/src/Servant/API/Auth.hs new file mode 100644 index 00000000..e1485b15 --- /dev/null +++ b/servant/src/Servant/API/Auth.hs @@ -0,0 +1,12 @@ +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE DeriveDataTypeable #-} +{-# LANGUAGE KindSignatures #-} +{-# LANGUAGE PolyKinds #-} +module Servant.API.Auth where + +import Data.Typeable (Typeable) + +-- | A generalized Authentication combinator. Use this if you have a +-- non-standard authentication technique. +data AuthProtect (tag :: k) deriving (Typeable) +