Commit e631dd1
Changed files (4)
pkg/web/default.go
@@ -1,6 +1,8 @@
package web
-import "net/http"
+import (
+ "net/http"
+)
func (h *HttpContext) Default(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusNotFound)
pkg/web/http_context.go
@@ -1,28 +1,31 @@
package web
import (
- "log"
"net/http"
+ "time"
+
+ "github.com/sirupsen/logrus"
)
type HttpContext struct {
issuer string
keyData []byte
- log *log.Logger
+ log *logrus.Logger
}
func NewHttpContext(issuer string, keyData []byte) *HttpContext {
+ logger := logrus.New()
return &HttpContext{
issuer: issuer,
keyData: keyData,
- log: log.Default(),
+ log: logger,
}
}
func (h *HttpContext) Router() *http.ServeMux {
mux := http.NewServeMux()
- mux.Handle("/", http.HandlerFunc(h.Default))
+ mux.Handle("/", h.withLogging(http.HandlerFunc(h.Default)))
mux.Handle("/.well-known/", h.wellKnownMux())
mux.Handle("/authorize", http.HandlerFunc(h.Authorize))
mux.Handle("/register", http.HandlerFunc(h.Register))
@@ -38,3 +41,21 @@ func (h *HttpContext) wellKnownMux() *http.ServeMux {
mux.Handle("/.well-known/openid-configuration", http.HandlerFunc(h.OpenIdConfiguration))
return mux
}
+
+func (h *HttpContext) withLogging(next http.Handler) http.Handler {
+ return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ start := time.Now()
+ next.ServeHTTP(w, r)
+ end := time.Now()
+
+ h.log.WithFields(logrus.Fields{
+ "content_type": r.Header.Get("Content-Type"),
+ "finished_at": end.Unix(),
+ "method": r.Method,
+ "path": r.URL.Path,
+ "remote_addr": r.RemoteAddr,
+ "started_at": start.Unix(),
+ "user_agent": r.UserAgent,
+ }).Info("Done")
+ })
+}
go.mod
@@ -8,6 +8,7 @@ require (
github.com/hashicorp/uuid v0.0.0-20160311170451-ebb0a03e909c
github.com/lestrrat-go/jwx/v2 v2.0.0-beta1
github.com/mattn/go-sqlite3 v1.14.12
+ github.com/sirupsen/logrus v1.8.1
github.com/stretchr/testify v1.7.1
)
@@ -25,5 +26,6 @@ require (
github.com/pmezard/go-difflib v1.0.0 // indirect
go.uber.org/atomic v1.7.0 // indirect
golang.org/x/crypto v0.0.0-20220214200702-86341886e292 // indirect
+ golang.org/x/sys v0.0.0-20220317061510-51cd9980dadf // indirect
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
)
go.sum
@@ -986,6 +986,7 @@ github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMB
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88=
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
+github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE=
github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
@@ -1416,6 +1417,7 @@ golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20211205182925-97ca703d548d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220111092808-5a964db01320/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220317061510-51cd9980dadf h1:Fm4IcnUL803i92qDlmB0obyHmosDrxZWxJL3gIeNqOw=
golang.org/x/sys v0.0.0-20220317061510-51cd9980dadf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=