[#111] auth: Get log from real request context
All checks were successful
/ Builds (1.19) (pull_request) Successful in 3m3s
/ Builds (1.20) (pull_request) Successful in 2m50s
/ DCO (pull_request) Successful in 3m14s
/ Vulncheck (pull_request) Successful in 1m9s
/ Lint (pull_request) Successful in 3m35s
/ Tests (1.19) (pull_request) Successful in 3m6s
/ Tests (1.20) (pull_request) Successful in 10m23s

Signed-off-by: Denis Kirillov <d.kirillov@yadro.com>
This commit is contained in:
Denis Kirillov 2023-07-06 12:13:45 +03:00
parent 499f4c6495
commit ce91d2300f

View file

@ -26,12 +26,11 @@ var ClientTime = KeyWrapper("__context_client_time")
func AuthMiddleware(log *zap.Logger, center auth.Center) mux.MiddlewareFunc { func AuthMiddleware(log *zap.Logger, center auth.Center) mux.MiddlewareFunc {
return func(h http.Handler) http.Handler { return func(h http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
var ctx context.Context ctx := r.Context()
box, err := center.Authenticate(r) box, err := center.Authenticate(r)
if err != nil { if err != nil {
if err == auth.ErrNoAuthorizationHeader { if err == auth.ErrNoAuthorizationHeader {
reqLogOrDefault(ctx, log).Debug("couldn't receive access box for gate key, random key will be used") reqLogOrDefault(ctx, log).Debug("couldn't receive access box for gate key, random key will be used")
ctx = r.Context()
} else { } else {
reqLogOrDefault(ctx, log).Error("failed to pass authentication", zap.Error(err)) reqLogOrDefault(ctx, log).Error("failed to pass authentication", zap.Error(err))
if _, ok := err.(errors.Error); !ok { if _, ok := err.(errors.Error); !ok {
@ -41,7 +40,7 @@ func AuthMiddleware(log *zap.Logger, center auth.Center) mux.MiddlewareFunc {
return return
} }
} else { } else {
ctx = context.WithValue(r.Context(), BoxData, box.AccessBox) ctx = context.WithValue(ctx, BoxData, box.AccessBox)
if !box.ClientTime.IsZero() { if !box.ClientTime.IsZero() {
ctx = context.WithValue(ctx, ClientTime, box.ClientTime) ctx = context.WithValue(ctx, ClientTime, box.ClientTime)
} }