packages feed

yesod-core 1.4.8.3 → 1.4.9

raw patch · 3 files changed

+35/−2 lines, 3 filesdep ~wai-extra

Dependency ranges changed: wai-extra

Files

ChangeLog.md view
@@ -1,3 +1,7 @@+## 1.4.9++* Add simple authentication helpers [#962](https://github.com/yesodweb/yesod/pull/962)+ ## 1.4.8.3  * Use 307 redirect for cleaning paths and non-GET requests [#951](https://github.com/yesodweb/yesod/issues/951)
Yesod/Core/Handler.hs view
@@ -52,6 +52,9 @@     , lookupCookie     , lookupFile     , lookupHeader+      -- **** Lookup authentication data+    , lookupBasicAuth+    , lookupBearerAuth       -- **** Multi-lookup     , lookupGetParams     , lookupPostParams@@ -166,6 +169,8 @@  import qualified Network.HTTP.Types            as H import qualified Network.Wai                   as W+import           Network.Wai.Middleware.HttpAuth+    ( extractBasicAuth, extractBearerAuth ) import Control.Monad.Trans.Class (lift)  import qualified Data.Text                     as T@@ -971,6 +976,30 @@ lookupHeaders key = do     req <- waiRequest     return $ lookup' key $ W.requestHeaders req++-- | Lookup basic authentication data from __Authorization__ header of+-- request. Returns user name and password+--+-- Since 1.4.9+lookupBasicAuth :: (MonadHandler m) => m (Maybe (Text, Text))+lookupBasicAuth = fmap (>>= getBA)+                  (lookupHeader "Authorization")+  where+    getBA bs = (\(x, y) -> ( decodeUtf8With lenientDecode x+                          , decodeUtf8With lenientDecode y))+               <$> extractBasicAuth bs++-- | Lookup bearer authentication datafrom __Authorization__ header of+-- request. Returns bearer token value+--+-- Since 1.4.9+lookupBearerAuth :: (MonadHandler m) => m (Maybe Text)+lookupBearerAuth = fmap (>>= getBR)+                   (lookupHeader "Authorization")+  where+    getBR bs = decodeUtf8With lenientDecode+               <$> extractBearerAuth bs+  -- | Lookup for GET parameters. lookupGetParams :: MonadHandler m => Text -> m [Text]
yesod-core.cabal view
@@ -1,5 +1,5 @@ name:            yesod-core-version:         1.4.8.3+version:         1.4.9 license:         MIT license-file:    LICENSE author:          Michael Snoyman <michael@snoyman.com>@@ -25,7 +25,7 @@     build-depends:   base                  >= 4.3      && < 5                    , time                  >= 1.1.4                    , wai                   >= 3.0-                   , wai-extra             >= 3.0+                   , wai-extra             >= 3.0.5                    , bytestring            >= 0.9.1.4                    , text                  >= 0.7                    , template-haskell