From 9203b17ee4bb6fee50c8d5f809ea75585c1bca1c Mon Sep 17 00:00:00 2001 From: Chris Done Date: Fri, 22 May 2020 16:16:30 +0100 Subject: [PATCH 1/2] Add discoverURI function --- src/Network/Wai/Middleware/Auth/OIDC.hs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Network/Wai/Middleware/Auth/OIDC.hs b/src/Network/Wai/Middleware/Auth/OIDC.hs index ec47343..7bf6a2f 100644 --- a/src/Network/Wai/Middleware/Auth/OIDC.hs +++ b/src/Network/Wai/Middleware/Auth/OIDC.hs @@ -11,6 +11,7 @@ module Network.Wai.Middleware.Auth.OIDC ( -- * Creating a provider OpenIDConnect , discover + , discoverURI -- * Customizing a provider , oidcClientId , oidcClientSecret @@ -165,13 +166,21 @@ instance AuthProvider OpenIDConnect where Just claims -> pure (Just (storeClaims claims req, user)) --- | Fetch configuration for a provider from its discovery endpoint. +-- | Fetch configuration for a provider from its discovery +-- endpoint. Sets the path to @/.well-known/..@. -- -- @since 0.2.3.0 discover :: T.Text -> IO OpenIDConnect discover urlText = do base <- parseAbsoluteURI urlText let uri = base { U.uriPath = "/.well-known/openid-configuration" } + discoverURI uri + +-- | Fetch configuration for a provider from an exact URI. +-- +-- @since 0.2.3.1 +discoverURI :: U.URI -> IO OpenIDConnect +discoverURI uri = do metadata <- fetchMetadata uri jwkset <- fetchJWKSet (jwksUri metadata) pure OpenIDConnect From dd772b94c21c12570312fb6be355debb69c9c356 Mon Sep 17 00:00:00 2001 From: Chris Done Date: Sun, 24 May 2020 10:43:33 +0100 Subject: [PATCH 2/2] Bump cabal and update CHANGELOG --- CHANGELOG.md | 5 +++++ wai-middleware-auth.cabal | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d4b03ae..b1edfce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +0.2.3.1 +======= + +* Expose `discoverURI` in `Network.Wai.Middleware.Auth.OIDC` + 0.2.3.0 ======= diff --git a/wai-middleware-auth.cabal b/wai-middleware-auth.cabal index bb1e473..22b4017 100644 --- a/wai-middleware-auth.cabal +++ b/wai-middleware-auth.cabal @@ -1,6 +1,6 @@ cabal-version: 1.18 name: wai-middleware-auth -version: 0.2.3.0 +version: 0.2.3.1 synopsis: Authentication middleware that secures WAI application description: Please see the README and Haddocks at license: MIT