mirror of
https://github.com/pomerium/pomerium.git
synced 2025-05-24 14:37:12 +02:00
proxy: add support for logging http request headers (#4388)
* config: add customization options for logging * config: validate log fields * proxy: add support for logging http request headers * log subset of headers * fix test name * dont use log.HTTPHeaders for access logs * canonicalize http/2 headers
This commit is contained in:
parent
4698e4661a
commit
638d9f3d6c
11 changed files with 172 additions and 13 deletions
63
internal/log/headers_test.go
Normal file
63
internal/log/headers_test.go
Normal file
|
@ -0,0 +1,63 @@
|
|||
package log
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/rs/zerolog"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestHTTPHeaders(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
type A = []string
|
||||
type M = map[string]string
|
||||
|
||||
t.Run("all", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
var buf bytes.Buffer
|
||||
log := zerolog.New(&buf)
|
||||
evt := log.Info()
|
||||
evt = HTTPHeaders(evt, A{"headers"}, M{
|
||||
"a": "1",
|
||||
"b": "2",
|
||||
"c": "3",
|
||||
})
|
||||
evt.Send()
|
||||
|
||||
assert.Equal(t, `{"level":"info","headers":{"A":"1","B":"2","C":"3"}}`, strings.TrimSpace(buf.String()))
|
||||
})
|
||||
t.Run("none", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
var buf bytes.Buffer
|
||||
log := zerolog.New(&buf)
|
||||
evt := log.Info()
|
||||
evt = HTTPHeaders(evt, A{"a", "b", "c"}, M{
|
||||
"a": "1",
|
||||
"b": "2",
|
||||
"c": "3",
|
||||
})
|
||||
evt.Send()
|
||||
|
||||
assert.Equal(t, `{"level":"info"}`, strings.TrimSpace(buf.String()))
|
||||
})
|
||||
t.Run("two", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
var buf bytes.Buffer
|
||||
log := zerolog.New(&buf)
|
||||
evt := log.Info()
|
||||
evt = HTTPHeaders(evt, A{"headers.a", "headers.C"}, M{
|
||||
"a": "1",
|
||||
"b": "2",
|
||||
"c": "3",
|
||||
})
|
||||
evt.Send()
|
||||
|
||||
assert.Equal(t, `{"level":"info","headers":{"A":"1","C":"3"}}`, strings.TrimSpace(buf.String()))
|
||||
})
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue