From e0011ad2b5eb5dd574507dd7b9a3667131c452f0 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Wed, 6 Oct 2010 05:55:25 +0200 Subject: [PATCH] Prevent endless YADIS-redirect loop --- OpenId2/Discovery.hs | 8 +++++--- authenticate.cabal | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/OpenId2/Discovery.hs b/OpenId2/Discovery.hs index 9ba7385a..03b6a561 100644 --- a/OpenId2/Discovery.hs +++ b/OpenId2/Discovery.hs @@ -70,13 +70,15 @@ discoverYADIS ident mb_loc = do let uri = fromMaybe (identifier ident) mb_loc req <- parseUrl uri res <- httpLbs req - let mloc = lookup "x-xrds-location" + let mloc = fmap S8.unpack + $ lookup "x-xrds-location" $ map (first $ map toLower . S8.unpack) $ responseHeaders res + let mloc' = if mloc == mb_loc then Nothing else mloc case statusCode res of 200 -> - case mloc of - Just loc -> discoverYADIS ident (Just $ S8.unpack loc) + case mloc' of + Just loc -> discoverYADIS ident (Just loc) Nothing -> do let mdoc = parseXRDS $ BSLU.toString $ responseBody res case mdoc of diff --git a/authenticate.cabal b/authenticate.cabal index 1042bc06..604d5fab 100644 --- a/authenticate.cabal +++ b/authenticate.cabal @@ -1,5 +1,5 @@ name: authenticate -version: 0.6.6 +version: 0.6.6.1 license: BSD3 license-file: LICENSE author: Michael Snoyman