authenticate 1.3.3.2 → 1.3.4
raw patch · 6 files changed
+20/−25 lines, 6 filesdep −monad-controldep ~http-conduitPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies removed: monad-control
Dependency ranges changed: http-conduit
API changes (from Hackage documentation)
- Web.Authenticate.BrowserId: checkAssertion :: (MonadResource m, MonadBaseControl IO m) => Text -> Text -> Manager -> m (Maybe Text)
+ Web.Authenticate.BrowserId: checkAssertion :: MonadIO m => Text -> Text -> Manager -> m (Maybe Text)
- Web.Authenticate.OpenId: authenticate :: (MonadBaseControl IO m, MonadResource m, MonadIO m) => [(Text, Text)] -> Manager -> m (Identifier, [(Text, Text)])
+ Web.Authenticate.OpenId: authenticate :: MonadIO m => [(Text, Text)] -> Manager -> m (Identifier, [(Text, Text)])
- Web.Authenticate.OpenId: authenticateClaimed :: (MonadBaseControl IO m, MonadResource m, MonadIO m) => [(Text, Text)] -> Manager -> m OpenIdResponse
+ Web.Authenticate.OpenId: authenticateClaimed :: MonadIO m => [(Text, Text)] -> Manager -> m OpenIdResponse
- Web.Authenticate.OpenId: getForwardUrl :: (MonadResource m, MonadBaseControl IO m) => Text -> Text -> Maybe Text -> [(Text, Text)] -> Manager -> m Text
+ Web.Authenticate.OpenId: getForwardUrl :: MonadIO m => Text -> Text -> Maybe Text -> [(Text, Text)] -> Manager -> m Text
- Web.Authenticate.Rpxnow: authenticate :: (MonadResource m, MonadBaseControl IO m) => String -> String -> Manager -> m Identifier
+ Web.Authenticate.Rpxnow: authenticate :: MonadIO m => String -> String -> Manager -> m Identifier
Files
- ChangeLog.md +4/−0
- OpenId2/Discovery.hs +4/−6
- Web/Authenticate/BrowserId.hs +4/−6
- Web/Authenticate/OpenId.hs +5/−7
- Web/Authenticate/Rpxnow.hs +2/−4
- authenticate.cabal +1/−2
ChangeLog.md view
@@ -1,3 +1,7 @@+## 1.3.4++* Relaxed a bunch of type signatures+ ## 1.3.3.2 * Support for http-conduit-2.2.0 [#47](https://github.com/yesodweb/authenticate/issues/47)
OpenId2/Discovery.hs view
@@ -40,8 +40,6 @@ import Control.Applicative ((<$>), (<*>)) import Network.HTTP.Types (status200) import Control.Exception (throwIO)-import Control.Monad.Trans.Control (MonadBaseControl)-import Control.Monad.Trans.Resource (MonadResource) import Data.Conduit ((=$), ($$), yield) import Text.HTML.TagStream.Text (tokenStream, Token) import Text.HTML.TagStream.Types (Token' (TagOpen))@@ -52,7 +50,7 @@ deriving Show -- | Attempt to resolve an OpenID endpoint, and user identifier.-discover :: (MonadBaseControl IO m, MonadIO m, MonadResource m) => Identifier -> Manager -> m Discovery+discover :: MonadIO m => Identifier -> Manager -> m Discovery discover ident@(Identifier i) manager = do res1 <- discoverYADIS ident Nothing 10 manager case res1 of@@ -67,7 +65,7 @@ -- | Attempt a YADIS based discovery, given a valid identifier. The result is -- an OpenID endpoint, and the actual identifier for the user.-discoverYADIS :: (MonadResource m, MonadBaseControl IO m)+discoverYADIS :: MonadIO m => Identifier -> Maybe String -> Int -- ^ remaining redirects@@ -141,9 +139,9 @@ -- | Attempt to discover an OpenID endpoint, from an HTML document. The result -- will be an endpoint on success, and the actual identifier of the user.-discoverHTML :: (MonadResource m, MonadBaseControl IO m) => Identifier -> Manager -> m (Maybe Discovery)+discoverHTML :: MonadIO m => Identifier -> Manager -> m (Maybe Discovery) discoverHTML ident'@(Identifier ident) manager = do- req <- liftIO $ parseUrl $ unpack ident+ req <- liftIO $ parseUrlThrow $ unpack ident lbs <- liftM responseBody $ httpLbs req manager return $ parseHTML ident' . toStrict . decodeUtf8With lenientDecode $ lbs
Web/Authenticate/BrowserId.hs view
@@ -6,26 +6,24 @@ ) where import Data.Text (Text)-import Network.HTTP.Conduit (parseUrl, responseBody, httpLbs, Manager, method, urlEncodedBody)+import Network.HTTP.Conduit (parseUrlThrow, responseBody, httpLbs, Manager, method, urlEncodedBody) import Data.Aeson (json, Value (Object, String)) import Data.Attoparsec.Lazy (parse, maybeResult) import qualified Data.HashMap.Lazy as Map import Data.Text.Encoding (encodeUtf8)-import Control.Monad.IO.Class (liftIO)-import Control.Monad.Trans.Control (MonadBaseControl)-import Control.Monad.Trans.Resource (MonadResource)+import Control.Monad.IO.Class (MonadIO, liftIO) -- | Location of the Javascript file hosted by browserid.org browserIdJs :: Text browserIdJs = "https://login.persona.org/include.js" -checkAssertion :: (MonadResource m, MonadBaseControl IO m)+checkAssertion :: MonadIO m => Text -- ^ audience -> Text -- ^ assertion -> Manager -> m (Maybe Text) checkAssertion audience assertion manager = do- req' <- liftIO $ parseUrl "https://verifier.login.persona.org/verify"+ req' <- liftIO $ parseUrlThrow "https://verifier.login.persona.org/verify" let req = urlEncodedBody [ ("audience", encodeUtf8 audience) , ("assertion", encodeUtf8 assertion)
Web/Authenticate/OpenId.hs view
@@ -25,7 +25,7 @@ import Data.Text.Encoding.Error (lenientDecode) import Data.Text.Lazy (toStrict) import Network.HTTP.Conduit- ( parseUrl, urlEncodedBody, responseBody, httpLbs+ ( parseUrlThrow, urlEncodedBody, responseBody, httpLbs , Manager ) import Control.Arrow ((***), second)@@ -36,11 +36,9 @@ import Blaze.ByteString.Builder (toByteString) import Network.HTTP.Types (renderQueryText) import Control.Exception (throwIO)-import Control.Monad.Trans.Control (MonadBaseControl)-import Control.Monad.Trans.Resource (MonadResource) getForwardUrl- :: (MonadResource m, MonadBaseControl IO m)+ :: MonadIO m => Text -- ^ The openid the user provided. -> Text -- ^ The URL for this application\'s complete page. -> Maybe Text -- ^ Optional realm@@ -81,7 +79,7 @@ : params authenticate- :: (MonadBaseControl IO m, MonadResource m, MonadIO m)+ :: MonadIO m => [(Text, Text)] -> Manager -> m (Identifier, [(Text, Text)])@@ -97,7 +95,7 @@ } authenticateClaimed- :: (MonadBaseControl IO m, MonadResource m, MonadIO m)+ :: MonadIO m => [(Text, Text)] -> Manager -> m OpenIdResponse@@ -124,7 +122,7 @@ let params' = map (encodeUtf8 *** encodeUtf8) $ ("openid.mode", "check_authentication") : filter (\(k, _) -> k /= "openid.mode") params- req' <- liftIO $ parseUrl $ unpack $ endpoint discOP+ req' <- liftIO $ parseUrlThrow $ unpack $ endpoint discOP let req = urlEncodedBody params' req' rsp <- httpLbs req manager let rps = parseDirectResponse $ toStrict $ decodeUtf8With lenientDecode $ responseBody rsp
Web/Authenticate/Rpxnow.hs view
@@ -38,8 +38,6 @@ import qualified Data.HashMap.Lazy as Map import Control.Applicative ((<$>), (<*>)) import Control.Exception (throwIO)-import Control.Monad.Trans.Control (MonadBaseControl)-import Control.Monad.Trans.Resource (MonadResource) -- | Information received from Rpxnow after a valid login. data Identifier = Identifier@@ -49,7 +47,7 @@ deriving (Eq, Ord, Read, Show, Data, Typeable) -- | Attempt to log a user in.-authenticate :: (MonadResource m, MonadBaseControl IO m)+authenticate :: MonadIO m => String -- ^ API key given by RPXNOW. -> String -- ^ Token passed by client. -> Manager@@ -61,7 +59,7 @@ , "&token=" , S.pack token ]- req' <- liftIO $ parseUrl "https://rpxnow.com"+ req' <- liftIO $ parseUrlThrow "https://rpxnow.com" let req = req' { method = "POST"
authenticate.cabal view
@@ -1,5 +1,5 @@ name: authenticate-version: 1.3.3.2+version: 1.3.4 license: MIT license-file: LICENSE author: Michael Snoyman, Hiromi Ishii, Arash Rouhani@@ -34,7 +34,6 @@ , conduit >= 0.5 , tagstream-conduit >= 0.5.5 , resourcet- , monad-control exposed-modules: Web.Authenticate.Rpxnow, Web.Authenticate.OpenId, Web.Authenticate.BrowserId,