Skip to content

Commit

Permalink
log body size
Browse files Browse the repository at this point in the history
  • Loading branch information
hummerdmag committed Dec 24, 2024
1 parent 0ceec03 commit b68fc6b
Show file tree
Hide file tree
Showing 7 changed files with 23 additions and 3 deletions.
1 change: 1 addition & 0 deletions model/server_settings.go
Original file line number Diff line number Diff line change
Expand Up @@ -369,6 +369,7 @@ type LoggerSettings struct {
// Deprecated: User HTTPDetailing on module level.
DumpRequest bool `yaml:"dumpRequest" json:"dumpRequest"`
Format string `yaml:"format" json:"format"`
MaxBodySize int `yaml:"maxBodySize" json:"maxBodySize"`
LogSensitiveData bool `yaml:"logSensitiveData" json:"logSensitiveData"`
Common LoggerParams `yaml:"common" json:"common"`
API LoggerParams `yaml:"api" json:"api"`
Expand Down
5 changes: 3 additions & 2 deletions model/server_settings_validation.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package model

import (
"errors"
"fmt"
"net/url"
"os"
Expand Down Expand Up @@ -146,7 +147,7 @@ func (sss *SessionStorageSettings) Validate() []error {
result := []error{}

if len(sss.Type) == 0 {
result = append(result, fmt.Errorf("Empty session storage type"))
result = append(result, errors.New("empty session storage type"))
}
if sss.SessionDuration.Duration == 0 {
result = append(result, fmt.Errorf("%s. Session duration is 0 seconds", subject))
Expand Down Expand Up @@ -226,7 +227,7 @@ func (sss *SMSServiceSettings) Validate() []error {
subject := "SMSServiceSettings"
result := []error{}
if len(sss.Type) == 0 {
return []error{fmt.Errorf("Empty SMS service type")}
return []error{errors.New("empty SMS service type")}
}

switch sss.Type {
Expand Down
3 changes: 3 additions & 0 deletions web/admin/router.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ func NewRouter(settings RouterSettings) (model.Router, error) {
ar.middleware = buildMiddleware(
settings.LoggerSettings.DumpRequest,
settings.LoggerSettings.Format,
settings.LoggerSettings.MaxBodySize,
settings.LoggerSettings.Admin,
settings.LoggerSettings.LogSensitiveData,
settings.Cors)
Expand All @@ -70,6 +71,7 @@ func NewRouter(settings RouterSettings) (model.Router, error) {
func buildMiddleware(
dumpRequest bool,
format string,
maxBodySize int,
logParams model.LoggerParams,
logSensitiveData bool,
corsHandler *cors.Cors,
Expand All @@ -79,6 +81,7 @@ func buildMiddleware(
lm := middleware.NegroniHTTPLogger(
logging.ComponentAdmin,
format,
maxBodySize,
logParams,
model.HTTPLogDetailing(dumpRequest, logParams.HTTPDetailing),
!logSensitiveData,
Expand Down
3 changes: 3 additions & 0 deletions web/api/routes.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ func (ar *Router) initRoutes(
baseMiddleware := buildBaseMiddleware(
loggerSettings.DumpRequest,
loggerSettings.Format,
loggerSettings.MaxBodySize,
loggerSettings.API,
loggerSettings.LogSensitiveData,
ar.cors,
Expand Down Expand Up @@ -58,6 +59,7 @@ func (ar *Router) initRoutes(
func buildBaseMiddleware(
dumpRequest bool,
format string,
maxBodySize int,
logParams model.LoggerParams,
logSensitiveData bool,
cors *cors.Cors,
Expand All @@ -81,6 +83,7 @@ func buildBaseMiddleware(
lm := middleware.NegroniHTTPLogger(
logging.ComponentAPI,
format,
maxBodySize,
logParams,
model.HTTPLogDetailing(dumpRequest, logParams.HTTPDetailing),
!logSensitiveData,
Expand Down
1 change: 1 addition & 0 deletions web/management/routes.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ func (ar *Router) initRoutes(loggerSettings model.LoggerSettings) {
lm := imiddleware.HTTPLogger(
logging.ComponentAPI,
loggerSettings.Format,
loggerSettings.MaxBodySize,
loggerSettings.Management,
model.HTTPLogDetailing(loggerSettings.DumpRequest, loggerSettings.Management.HTTPDetailing),
!loggerSettings.LogSensitiveData,
Expand Down
10 changes: 9 additions & 1 deletion web/middleware/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,13 @@ import (
func NegroniHTTPLogger(
component string,
format string,
maxBodySize int,
logParams model.LoggerParams,
httpDetailing model.HTTPDetailing,
excludeAuth bool,
exclude ...string,
) negroni.Handler {
logger := HTTPLogger(component, format, logParams, httpDetailing, excludeAuth, exclude...)
logger := HTTPLogger(component, format, maxBodySize, logParams, httpDetailing, excludeAuth, exclude...)

return negroni.HandlerFunc(func(w http.ResponseWriter, r *http.Request, next http.HandlerFunc) {
logger(next).ServeHTTP(w, r)
Expand All @@ -34,6 +35,7 @@ func emptyMiddleware(next http.Handler) http.Handler {
func HTTPLogger(
component string,
format string,
maxBodySize int,
logParams model.LoggerParams,
httpDetailing model.HTTPDetailing,
excludeAuth bool,
Expand Down Expand Up @@ -96,6 +98,12 @@ func HTTPLogger(
return true, logBody(r.URL.Path)
}))

if maxBodySize <= 0 {
maxBodySize = httpdump.DefaultBodySize
}

opts = append(opts, httpdump.WithLimitedBody(maxBodySize))

hd := httpdump.NewMiddlewareWrapper(dumpReq, dumpResp, opts...)
return hd
}
Expand Down
3 changes: 3 additions & 0 deletions web/spa/router.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ func NewRouter(setting SPASettings, middlewares []negroni.Handler) (model.Router
setting.Name,
setting.LoggerSettings.DumpRequest,
setting.LoggerSettings.Format,
setting.LoggerSettings.MaxBodySize,
setting.LoggerSettings.SPA,
!setting.LoggerSettings.LogSensitiveData,
middlewares,
Expand All @@ -50,13 +51,15 @@ func buildMiddleware(
settingName string,
dumpRequest bool,
format string,
maxBodySize int,
logParams model.LoggerParams,
logSensitiveData bool,
middlewares []negroni.Handler,
) *negroni.Negroni {
lm := middleware.NegroniHTTPLogger(
settingName,
format,
maxBodySize,
logParams,
model.HTTPLogDetailing(dumpRequest, logParams.HTTPDetailing),
!logSensitiveData,
Expand Down

0 comments on commit b68fc6b

Please sign in to comment.