git.iko.soy/typeable/servant
on master help sign in
some formatting and refactoring
commit4224c20bffc96ccef17a4d7048d0a87d4324162e authorSönke Hahn <soenkehahn@gmail.com> dateWed 6 Apr 2016, 10:59 (11 years ago) parent933a2c4
4 files changed+25−19
servant-server/src/Servant/Server/Internal/BasicAuth.hs+6−6 servant-server/test/Servant/ServerSpec.hs+13−7 servant/src/Servant/API/BasicAuth.hs+4−3 servant/src/Servant/API/Experimental/Auth.hs+2−3
servant-server/src/Servant/Server/Internal/BasicAuth.hs+6−6
@@ -1,7 +1,7 @@
1−{-# LANGUAGE DeriveFunctor #-}
2−{-# LANGUAGE DeriveGeneric #-}
31{-# LANGUAGE DeriveDataTypeable #-}
4−{-# LANGUAGE OverloadedStrings #-}
2+{-# LANGUAGE DeriveFunctor #-}
3+{-# LANGUAGE DeriveGeneric #-}
4+{-# LANGUAGE OverloadedStrings #-}
55
66module Servant.Server.Internal.BasicAuth where
77
@@ -15,9 +15,9 @@ import GHC.Generics
1515import Network.HTTP.Types (Header)
1616import Network.Wai (Request, requestHeaders)
1717
18−import Servant.API.BasicAuth (BasicAuthData(BasicAuthData))
19−import Servant.Server.Internal.RoutingApplication
20−import Servant.Server.Internal.ServantErr
18+import Servant.API.BasicAuth (BasicAuthData(BasicAuthData))
19+import Servant.Server.Internal.RoutingApplication
20+import Servant.Server.Internal.ServantErr
2121
2222-- * Basic Auth
2323
servant-server/test/Servant/ServerSpec.hs+13−7
@@ -546,16 +546,16 @@ type BasicAuthAPI = BasicAuth "foo" () :> "basic" :> Get '[JSON] Animal
546546
547547basicAuthApi :: Proxy BasicAuthAPI
548548basicAuthApi = Proxy
549+
549550basicAuthServer :: Server BasicAuthAPI
550551basicAuthServer = const (return jerry)
551552
552553basicAuthContext :: Context '[ BasicAuthCheck () ]
553554basicAuthContext =
554− let basicHandler = BasicAuthCheck $ (\(BasicAuthData usr pass) ->
555+ let basicHandler = BasicAuthCheck $ \(BasicAuthData usr pass) ->
555556 if usr == "servant" && pass == "server"
556− then return (Authorized ())
557− else return Unauthorized
558− )
557+ then return (Authorized ())
558+ else return Unauthorized
559559 in basicHandler :. EmptyContext
560560
561561basicAuthSpec :: Spec
@@ -564,10 +564,13 @@ basicAuthSpec = do
564564 with (return (serveWithContext basicAuthApi basicAuthContext basicAuthServer)) $ do
565565
566566 context "Basic Authentication" $ do
567− it "returns with 401 with bad password" $ do
567+ it "returns 401 with bad password" $ do
568568 get "/basic" `shouldRespondWith` 401
569+
569570 it "returns 200 with the right password" $ do
570− THW.request methodGet "/basic" [("Authorization","Basic c2VydmFudDpzZXJ2ZXI=")] "" `shouldRespondWith` 200
571+ let validCredentials = [("Authorization", "Basic c2VydmFudDpzZXJ2ZXI=")]
572+ THW.request methodGet "/basic" validCredentials ""
573+ `shouldRespondWith` 200
571574
572575-- }}}
573576------------------------------------------------------------------------------
@@ -575,14 +578,16 @@ basicAuthSpec = do
575578------------------------------------------------------------------------------
576579
577580type GenAuthAPI = AuthProtect "auth" :> "auth" :> Get '[JSON] Animal
581+
578582authApi :: Proxy GenAuthAPI
579583authApi = Proxy
584+
580585authServer :: Server GenAuthAPI
581586authServer = const (return tweety)
582587
583588type instance AuthServerData (AuthProtect "auth") = ()
584589
585−genAuthContext :: Context '[ AuthHandler Request () ]
590+genAuthContext :: Context '[AuthHandler Request ()]
586591genAuthContext =
587592 let authHandler = (\req ->
588593 if elem ("Auth", "secret") (requestHeaders req)
@@ -599,6 +604,7 @@ genAuthSpec = do
599604 context "Custom Auth Protection" $ do
600605 it "returns 401 when missing headers" $ do
601606 get "/auth" `shouldRespondWith` 401
607+
602608 it "returns 200 with the right header" $ do
603609 THW.request methodGet "/auth" [("Auth","secret")] "" `shouldRespondWith` 200
604610
servant/src/Servant/API/BasicAuth.hs+4−3
@@ -1,12 +1,13 @@
11{-# LANGUAGE DataKinds #-}
22{-# LANGUAGE DeriveDataTypeable #-}
3−{-# LANGUAGE KindSignatures #-}
4−{-# LANGUAGE PolyKinds #-}
3+{-# LANGUAGE KindSignatures #-}
4+{-# LANGUAGE PolyKinds #-}
5+
56module Servant.API.BasicAuth where
67
78import Data.ByteString (ByteString)
89import Data.Typeable (Typeable)
9−import GHC.TypeLits (Symbol)
10+import GHC.TypeLits (Symbol)
1011
1112
1213-- | Combinator for <https://tools.ietf.org/html/rfc2617#section-2 Basic Access Authentication>.
servant/src/Servant/API/Experimental/Auth.hs+2−3
@@ -1,7 +1,7 @@
11{-# LANGUAGE DataKinds #-}
22{-# LANGUAGE DeriveDataTypeable #-}
3−{-# LANGUAGE KindSignatures #-}
4−{-# LANGUAGE PolyKinds #-}
3+{-# LANGUAGE KindSignatures #-}
4+{-# LANGUAGE PolyKinds #-}
55module Servant.API.Experimental.Auth where
66
77import Data.Typeable (Typeable)
@@ -11,4 +11,3 @@ import Data.Typeable (Typeable)
1111--
1212-- NOTE: THIS API IS EXPERIMENTAL AND SUBJECT TO CHANGE.
1313data AuthProtect (tag :: k) deriving (Typeable)
14−