http-client 0.7.12 → 0.7.13
raw patch · 4 files changed
+19/−5 lines, 4 files
Files
- ChangeLog.md +4/−0
- Network/HTTP/Client/Request.hs +2/−0
- Network/HTTP/Client/Types.hs +12/−4
- http-client.cabal +1/−1
ChangeLog.md view
@@ -1,5 +1,9 @@ # Changelog for http-client +## 0.7.13++* Create the ability to redact custom header values to censor sensitive information+ ## 0.7.12 * Fix premature connection closing due to weak reference lifetimes [#490](https://github.com/snoyberg/http-client/pull/490)
Network/HTTP/Client/Request.hs view
@@ -49,6 +49,7 @@ import Control.Monad (unless, guard) import Control.Monad.IO.Class (MonadIO, liftIO) import Numeric (showHex)+import qualified Data.Set as Set import Blaze.ByteString.Builder (Builder, fromByteString, fromLazyByteString, toByteStringIO, flush) import Blaze.ByteString.Builder.Char8 (fromChar, fromShow)@@ -303,6 +304,7 @@ , requestManagerOverride = Nothing , shouldStripHeaderOnRedirect = const False , proxySecureMode = ProxySecureWithConnect+ , redactHeaders = Set.singleton "Authorization" } -- | Parses a URL via 'parseRequest_'
Network/HTTP/Client/Types.hs view
@@ -59,6 +59,7 @@ import Data.IORef import qualified Network.Socket as NS import qualified Data.Map as Map+import qualified Data.Set as Set import Data.Text (Text) import Data.Streaming.Zlib (ZlibException) import Data.CaseInsensitive as CI@@ -620,6 +621,11 @@ -- Default: Use HTTP CONNECT. -- -- @since 0.7.2++ , redactHeaders :: Set.Set HeaderName+ -- ^ List of header values being redacted in case we show Request.+ --+ -- @since 0.7.13 } deriving T.Typeable @@ -643,7 +649,7 @@ , " host = " ++ show (host x) , " port = " ++ show (port x) , " secure = " ++ show (secure x)- , " requestHeaders = " ++ show (DL.map redactSensitiveHeader (requestHeaders x))+ , " requestHeaders = " ++ show (DL.map (redactSensitiveHeader $ redactHeaders x) (requestHeaders x)) , " path = " ++ show (path x) , " queryString = " ++ show (queryString x) --, " requestBody = " ++ show (requestBody x)@@ -657,9 +663,11 @@ , "}" ] -redactSensitiveHeader :: Header -> Header-redactSensitiveHeader ("Authorization", _) = ("Authorization", "<REDACTED>")-redactSensitiveHeader h = h+redactSensitiveHeader :: Set.Set HeaderName -> Header -> Header+redactSensitiveHeader toRedact h@(name, _) =+ if name `Set.member` toRedact+ then (name, "<REDACTED>")+ else h -- | A simple representation of the HTTP response. --
http-client.cabal view
@@ -1,5 +1,5 @@ name: http-client-version: 0.7.12+version: 0.7.13 synopsis: An HTTP client engine description: Hackage documentation generation is not reliable. For up to date documentation, please see: <http://www.stackage.org/package/http-client>. homepage: https://github.com/snoyberg/http-client