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 +4/−0
- Yesod/Core/Handler.hs +29/−0
- yesod-core.cabal +2/−2
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