om-http 0.4.1.0 → 0.5.0.0
raw patch · 2 files changed
+12/−6 lines, 2 filesdep +containersPVP ok
version bump matches the API change (PVP)
Dependencies added: containers
API changes (from Hackage documentation)
- OM.HTTP: requestLogging :: (Loc -> LogSource -> LogLevel -> LogStr -> IO ()) -> Middleware
+ OM.HTTP: requestLogging :: (Loc -> LogSource -> LogLevel -> LogStr -> IO ()) -> Set HeaderName -> Middleware
Files
- om-http.cabal +2/−1
- src/OM/HTTP.hs +10/−5
om-http.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: om-http-version: 0.4.1.0+version: 0.5.0.0 synopsis: Http utilities. description: Random HTTP utilities. homepage: https://github.com/owensmurray/om-http@@ -23,6 +23,7 @@ , base64 >= 1.0 && < 1.1 , bytestring >= 0.11.5.0 && < 0.13 , case-insensitive >= 1.2.0.11 && < 1.3+ , containers >= 0.6.8 && < 0.8 , directory >= 1.3.7.1 && < 1.4 , filepath >= 1.4.101.0 && < 1.6 , http-types >= 0.12.4 && < 0.13
src/OM/HTTP.hs view
@@ -37,6 +37,7 @@ import Data.ByteString.Base64 (encodeBase64) import Data.List ((\\)) import Data.Maybe (catMaybes)+import Data.Set (Set, member) import Data.String (IsString(fromString)) import Data.Text (Text) import Data.Text.Encoding (decodeUtf8')@@ -47,8 +48,9 @@ import Language.Haskell.TH (Code(examineCode), Q, TExp, runIO) import Language.Haskell.TH.Syntax (addDependentFile) import Network.HTTP.Types- ( Status(statusCode, statusMessage), Header, internalServerError500- , methodNotAllowed405, movedPermanently301, ok200, status404+ ( Status(statusCode, statusMessage), Header, HeaderName+ , internalServerError500, methodNotAllowed405, movedPermanently301, ok200+ , status404 ) import Network.Mime (defaultMimeLookup) import Network.Socket@@ -99,7 +101,7 @@ -> IO () runTlsRedirect logging serverName serverVersion url = run 80- . requestLogging logging+ . requestLogging logging mempty . setServer serverName serverVersion . hstsDirective 600 . logExceptionsAndContinue logging@@ -187,8 +189,9 @@ -} requestLogging :: (Loc -> LogSource -> LogLevel -> LogStr -> IO ())+ -> Set HeaderName {-^ Headers to redact -} -> Middleware-requestLogging logging app req respond =+requestLogging logging redactHeaders app req respond = (`runLoggingT` logging) $ do logInfo $ "Starting request: " <> reqStr :# [ "method" .= decodeUtf8Safe (requestMethod req)@@ -201,7 +204,9 @@ (\(name, val) -> decodeUtf8Safe (CI.original name) <> ": "- <> decodeUtf8Safe val+ <> if name `member` redactHeaders+ then "<redacted>"+ else decodeUtf8Safe val ) (requestHeaders req) ]