Skip to content

Commit d13bd6b

Browse files
RomanZavodskikhRoman Zavodskikh
and
Roman Zavodskikh
authored
Provide TraceID in the logs (zalando#2269)
Signed-off-by: Roman Zavodskikh <[email protected]> Co-authored-by: Roman Zavodskikh <[email protected]>
1 parent aa782b1 commit d13bd6b

27 files changed

+118
-76
lines changed

filters/auth/auth.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"net/http"
77
"strings"
88

9-
log "github.com/sirupsen/logrus"
109
"github.com/zalando/skipper/filters"
1110
logfilter "github.com/zalando/skipper/filters/log"
1211
)
@@ -107,12 +106,12 @@ func reject(
107106
debuginfo string,
108107
) {
109108
if debuginfo == "" {
110-
log.Debugf(
109+
ctx.Logger().Debugf(
111110
"Rejected: status: %d, username: %s, reason: %s.",
112111
status, username, reason,
113112
)
114113
} else {
115-
log.Debugf(
114+
ctx.Logger().Debugf(
116115
"Rejected: status: %d, username: %s, reason: %s, info: %s.",
117116
status, username, reason, debuginfo,
118117
)

filters/auth/forwardtoken.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"encoding/json"
55
"fmt"
66

7-
log "github.com/sirupsen/logrus"
87
"github.com/zalando/skipper/filters"
98
"golang.org/x/net/http/httpguts"
109
)
@@ -82,13 +81,13 @@ func (f *forwardTokenFilter) Request(ctx filters.FilterContext) {
8281
case tokenIntrospectionInfo:
8382
tiMap = retainKeys(typedTiMap, f.RetainJsonKeys)
8483
default:
85-
log.Errorf("Unexpected input type[%T] for `forwardToken` filter. Unable to apply mask", typedTiMap)
84+
ctx.Logger().Errorf("Unexpected input type[%T] for `forwardToken` filter. Unable to apply mask", typedTiMap)
8685
}
8786
}
8887

8988
payload, err := json.Marshal(tiMap)
9089
if err != nil {
91-
log.Errorf("Error while marshaling token: %v.", err)
90+
ctx.Logger().Errorf("Error while marshaling token: %v.", err)
9291
return
9392
}
9493
request := ctx.Request()

filters/auth/forwardtokenfield.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package auth
33
import (
44
"fmt"
55

6-
log "github.com/sirupsen/logrus"
76
"github.com/zalando/skipper/filters"
87
"golang.org/x/net/http/httpguts"
98
)
@@ -71,7 +70,7 @@ func (f *forwardTokenFieldFilter) Request(ctx filters.FilterContext) {
7170
}, ctx, payload)
7271

7372
if err != nil {
74-
log.Error(err)
73+
ctx.Logger().Errorf("%v", err)
7574
return
7675
}
7776
}

filters/auth/grant.go

+5-6
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import (
77
"net/http"
88
"time"
99

10-
log "github.com/sirupsen/logrus"
1110
"github.com/zalando/skipper/filters"
1211
"golang.org/x/oauth2"
1312
)
@@ -65,7 +64,7 @@ func loginRedirectWithOverride(ctx filters.FilterContext, config *OAuthConfig, o
6564

6665
authConfig, err := config.GetConfig(req)
6766
if err != nil {
68-
log.Debugf("Failed to obtain auth config: %v", err)
67+
ctx.Logger().Debugf("Failed to obtain auth config: %v", err)
6968
ctx.Serve(&http.Response{
7069
StatusCode: http.StatusForbidden,
7170
})
@@ -80,7 +79,7 @@ func loginRedirectWithOverride(ctx filters.FilterContext, config *OAuthConfig, o
8079

8180
state, err := config.flowState.createState(original)
8281
if err != nil {
83-
log.Errorf("Failed to create login redirect: %v", err)
82+
ctx.Logger().Errorf("Failed to create login redirect: %v", err)
8483
serverError(ctx)
8584
return
8685
}
@@ -198,15 +197,15 @@ func (f *grantFilter) Request(ctx filters.FilterContext) {
198197
tokeninfo, err := f.config.TokeninfoClient.getTokeninfo(token.AccessToken, ctx)
199198
if err != nil {
200199
if err != errInvalidToken {
201-
log.Errorf("Failed to call tokeninfo: %v.", err)
200+
ctx.Logger().Errorf("Failed to call tokeninfo: %v.", err)
202201
}
203202
loginRedirect(ctx, f.config)
204203
return
205204
}
206205

207206
err = f.setupToken(token, tokeninfo, ctx)
208207
if err != nil {
209-
log.Errorf("Failed to create token container: %v.", err)
208+
ctx.Logger().Errorf("Failed to create token container: %v.", err)
210209
loginRedirect(ctx, f.config)
211210
return
212211
}
@@ -224,7 +223,7 @@ func (f *grantFilter) Response(ctx filters.FilterContext) {
224223

225224
c, err := createCookie(f.config, ctx.Request().Host, token)
226225
if err != nil {
227-
log.Errorf("Failed to generate cookie: %v.", err)
226+
ctx.Logger().Errorf("Failed to generate cookie: %v.", err)
228227
return
229228
}
230229

filters/auth/grantcallback.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"net/http"
55
"net/url"
66

7-
log "github.com/sirupsen/logrus"
87
"github.com/zalando/skipper/filters"
98
"golang.org/x/oauth2"
109
)
@@ -86,14 +85,14 @@ func (f *grantCallbackFilter) Request(ctx filters.FilterContext) {
8685

8786
token, err := f.exchangeAccessToken(req, code)
8887
if err != nil {
89-
log.Errorf("Failed to exchange access token: %v.", err)
88+
ctx.Logger().Errorf("Failed to exchange access token: %v.", err)
9089
serverError(ctx)
9190
return
9291
}
9392

9493
c, err := createCookie(f.config, req.Host, token)
9594
if err != nil {
96-
log.Errorf("Failed to create OAuth grant cookie: %v.", err)
95+
ctx.Logger().Errorf("Failed to create OAuth grant cookie: %v.", err)
9796
serverError(ctx)
9897
return
9998
}

filters/auth/grantlogout.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
"net/url"
99
"strings"
1010

11-
log "github.com/sirupsen/logrus"
1211
"github.com/zalando/skipper/filters"
1312
"golang.org/x/oauth2"
1413
)
@@ -157,14 +156,14 @@ func (f *grantLogoutFilter) Request(ctx filters.FilterContext) {
157156
if c.AccessToken != "" {
158157
accessTokenRevokeError = f.revokeTokenType(authConfig, accessTokenType, c.AccessToken)
159158
if accessTokenRevokeError != nil {
160-
log.Error(accessTokenRevokeError)
159+
ctx.Logger().Errorf("%v", accessTokenRevokeError)
161160
}
162161
}
163162

164163
if c.RefreshToken != "" {
165164
refreshTokenRevokeError = f.revokeTokenType(authConfig, refreshTokenType, c.RefreshToken)
166165
if refreshTokenRevokeError != nil {
167-
log.Error(refreshTokenRevokeError)
166+
ctx.Logger().Errorf("%v", refreshTokenRevokeError)
168167
}
169168
}
170169

filters/auth/jwt_validation.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ func (f *jwtValidationFilter) Request(ctx filters.FilterContext) {
134134

135135
claims, err := parseToken(token, f.jwksUri)
136136
if err != nil {
137-
log.Errorf("Error while parsing jwt token : %v.", err)
137+
ctx.Logger().Errorf("Error while parsing jwt token : %v.", err)
138138
unauthorized(ctx, "", invalidToken, "", "")
139139
return
140140
}

filters/auth/oidc.go

+12-12
Original file line numberDiff line numberDiff line change
@@ -390,21 +390,21 @@ func (f *tokenOidcFilter) internalServerError(ctx filters.FilterContext) {
390390
func (f *tokenOidcFilter) doOauthRedirect(ctx filters.FilterContext, cookies []*http.Cookie) {
391391
nonce, err := f.encrypter.CreateNonce()
392392
if err != nil {
393-
log.Errorf("Failed to create nonce: %v.", err)
393+
ctx.Logger().Errorf("Failed to create nonce: %v.", err)
394394
f.internalServerError(ctx)
395395
return
396396
}
397397

398398
redirectUrl := ctx.Request().URL.String()
399399
statePlain, err := createState(nonce, redirectUrl)
400400
if err != nil {
401-
log.Errorf("Failed to create oauth2 state: %v.", err)
401+
ctx.Logger().Errorf("Failed to create oauth2 state: %v.", err)
402402
f.internalServerError(ctx)
403403
return
404404
}
405405
stateEnc, err := f.encrypter.Encrypt(statePlain)
406406
if err != nil {
407-
log.Errorf("Failed to encrypt data block: %v.", err)
407+
ctx.Logger().Errorf("Failed to encrypt data block: %v.", err)
408408
f.internalServerError(ctx)
409409
return
410410
}
@@ -431,7 +431,7 @@ func (f *tokenOidcFilter) doOauthRedirect(ctx filters.FilterContext, cookies []*
431431
for _, cookie := range cookies {
432432
rsp.Header.Add("Set-Cookie", cookie.String())
433433
}
434-
log.Debugf("serve redirect: plaintextState:%s to Location: %s", statePlain, rsp.Header.Get("Location"))
434+
ctx.Logger().Debugf("serve redirect: plaintextState:%s to Location: %s", statePlain, rsp.Header.Get("Location"))
435435
ctx.Serve(rsp)
436436
}
437437

@@ -520,7 +520,7 @@ func mergerCookies(cookies []*http.Cookie) *http.Cookie {
520520
}
521521

522522
func (f *tokenOidcFilter) doDownstreamRedirect(ctx filters.FilterContext, oidcState []byte, maxAge time.Duration, redirectUrl string) {
523-
log.Debugf("Doing Downstream Redirect to :%s", redirectUrl)
523+
ctx.Logger().Debugf("Doing Downstream Redirect to :%s", redirectUrl)
524524
r := &http.Response{
525525
StatusCode: http.StatusTemporaryRedirect,
526526
Header: http.Header{
@@ -582,7 +582,7 @@ func (f *tokenOidcFilter) callbackEndpoint(ctx filters.FilterContext) {
582582
oauthState, err := f.getCallbackState(ctx)
583583
if err != nil {
584584
if _, ok := err.(*requestError); !ok {
585-
log.Errorf("Error while retrieving callback state: %v.", err)
585+
ctx.Logger().Errorf("Error while retrieving callback state: %v.", err)
586586
}
587587

588588
unauthorized(
@@ -599,7 +599,7 @@ func (f *tokenOidcFilter) callbackEndpoint(ctx filters.FilterContext) {
599599
oauth2Token, err = f.getTokenWithExchange(oauthState, ctx)
600600
if err != nil {
601601
if _, ok := err.(*requestError); !ok {
602-
log.Errorf("Error while getting token in callback: %v.", err)
602+
ctx.Logger().Errorf("Error while getting token in callback: %v.", err)
603603
}
604604

605605
unauthorized(
@@ -634,7 +634,7 @@ func (f *tokenOidcFilter) callbackEndpoint(ctx filters.FilterContext) {
634634
oidcIDToken, err = f.getidtoken(ctx, oauth2Token)
635635
if err != nil {
636636
if _, ok := err.(*requestError); !ok {
637-
log.Errorf("Error while getting id token: %v", err)
637+
ctx.Logger().Errorf("Error while getting id token: %v", err)
638638
}
639639

640640
unauthorized(
@@ -663,7 +663,7 @@ func (f *tokenOidcFilter) callbackEndpoint(ctx filters.FilterContext) {
663663
oidcIDToken, err = f.getidtoken(ctx, oauth2Token)
664664
if err != nil {
665665
if _, ok := err.(*requestError); !ok {
666-
log.Errorf("Error while getting id token: %v", err)
666+
ctx.Logger().Errorf("Error while getting id token: %v", err)
667667
}
668668

669669
unauthorized(
@@ -679,7 +679,7 @@ func (f *tokenOidcFilter) callbackEndpoint(ctx filters.FilterContext) {
679679
claimsMap, sub, err = f.tokenClaims(ctx, oauth2Token)
680680
if err != nil {
681681
if _, ok := err.(*requestError); !ok {
682-
log.Errorf("Failed to get claims with error: %v", err)
682+
ctx.Logger().Errorf("Failed to get claims with error: %v", err)
683683
}
684684

685685
unauthorized(
@@ -825,7 +825,7 @@ func (f *tokenOidcFilter) Request(ctx filters.FilterContext) {
825825
// adding upstream headers
826826
err = setHeaders(f.upstreamHeaders, ctx, container)
827827
if err != nil {
828-
log.Error(err)
828+
ctx.Logger().Errorf("%v", err)
829829
f.internalServerError(ctx)
830830
return
831831
}
@@ -916,7 +916,7 @@ func (f *tokenOidcFilter) getCallbackState(ctx filters.FilterContext) (*OauthSta
916916
return nil, requestErrorf("token from state query is invalid: %v", err)
917917
}
918918

919-
log.Debugf("len(stateQueryPlain): %d, stateQueryEnc: %d, stateQueryEncHex: %d", len(stateQueryPlain), len(stateQueryEnc), len(stateQueryEncHex))
919+
ctx.Logger().Debugf("len(stateQueryPlain): %d, stateQueryEnc: %d, stateQueryEncHex: %d", len(stateQueryPlain), len(stateQueryEnc), len(stateQueryEncHex))
920920

921921
state, err := extractState(stateQueryPlain)
922922
if err != nil {

filters/auth/oidc_introspection.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ func (filter *oidcIntrospectionFilter) Request(ctx filters.FilterContext) {
115115

116116
token, ok := ctx.StateBag()[oidcClaimsCacheKey].(tokenContainer)
117117
if !ok || &token == (&tokenContainer{}) || len(token.Claims) == 0 {
118-
log.Errorf("Error retrieving %s for OIDC token introspection", oidcClaimsCacheKey)
118+
ctx.Logger().Errorf("Error retrieving %s for OIDC token introspection", oidcClaimsCacheKey)
119119
unauthorized(ctx, "", missingToken, r.Host, oidcClaimsCacheKey+" is unavailable in StateBag")
120120
return
121121
}

filters/auth/tokeninfo.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"time"
77

88
"github.com/opentracing/opentracing-go"
9-
log "github.com/sirupsen/logrus"
109
"github.com/zalando/skipper/filters"
1110
)
1211

@@ -357,7 +356,7 @@ func (f *tokeninfoFilter) Request(ctx filters.FilterContext) {
357356
if err == errInvalidToken {
358357
reason = invalidToken
359358
} else {
360-
log.Errorf("Error while calling tokeninfo: %v.", err)
359+
ctx.Logger().Errorf("Error while calling tokeninfo: %v", err)
361360
}
362361

363362
unauthorized(ctx, "", reason, "", "")
@@ -380,7 +379,7 @@ func (f *tokeninfoFilter) Request(ctx filters.FilterContext) {
380379
case checkOAuthTokeninfoAllKV:
381380
allowed = f.validateAllKV(authMap)
382381
default:
383-
log.Errorf("Wrong tokeninfoFilter type: %s.", f)
382+
ctx.Logger().Errorf("Wrong tokeninfoFilter type: %s.", f)
384383
}
385384

386385
if !allowed {

filters/auth/tokenintrospection.go

+3-4
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import (
1010
"time"
1111

1212
"github.com/opentracing/opentracing-go"
13-
log "github.com/sirupsen/logrus"
1413
"github.com/zalando/skipper/filters"
1514
)
1615

@@ -433,7 +432,7 @@ func (f *tokenintrospectFilter) Request(ctx filters.FilterContext) {
433432
if err == errInvalidToken {
434433
reason = invalidToken
435434
} else {
436-
log.Errorf("Error while calling token introspection: %v.", err)
435+
ctx.Logger().Errorf("Error while calling token introspection: %v", err)
437436
}
438437

439438
unauthorized(ctx, "", reason, f.authClient.url.Hostname(), "")
@@ -446,7 +445,7 @@ func (f *tokenintrospectFilter) Request(ctx filters.FilterContext) {
446445
sub, err := info.Sub()
447446
if err != nil {
448447
if err != errInvalidTokenintrospectionData {
449-
log.Errorf("Error while reading token: %v.", err)
448+
ctx.Logger().Errorf("Error while reading token: %v", err)
450449
}
451450

452451
unauthorized(ctx, sub, invalidSub, f.authClient.url.Hostname(), "")
@@ -469,7 +468,7 @@ func (f *tokenintrospectFilter) Request(ctx filters.FilterContext) {
469468
case checkOAuthTokenintrospectionAllKV, checkSecureOAuthTokenintrospectionAllKV:
470469
allowed = f.validateAllKV(info)
471470
default:
472-
log.Errorf("Wrong tokenintrospectionFilter type: %s.", f)
471+
ctx.Logger().Errorf("Wrong tokenintrospectionFilter type: %s", f)
473472
}
474473

475474
if !allowed {

filters/auth/webhook.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import (
77
"time"
88

99
"github.com/opentracing/opentracing-go"
10-
log "github.com/sirupsen/logrus"
1110
"golang.org/x/net/http/httpguts"
1211

1312
"github.com/zalando/skipper/filters"
@@ -113,7 +112,7 @@ func copyHeader(to, from http.Header) {
113112
func (f *webhookFilter) Request(ctx filters.FilterContext) {
114113
resp, err := f.authClient.getWebhook(ctx)
115114
if err != nil {
116-
log.Errorf("Failed to make authentication webhook request: %v.", err)
115+
ctx.Logger().Errorf("Failed to make authentication webhook request: %v.", err)
117116
}
118117

119118
// forbidden

filters/builtin/decompress.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ import (
44
"compress/flate"
55
"compress/gzip"
66
"fmt"
7-
"github.com/andybalholm/brotli"
87
"io"
98
"net/http"
109
"runtime"
1110
"strings"
1211
"sync"
1312

14-
log "github.com/sirupsen/logrus"
13+
"github.com/andybalholm/brotli"
14+
1515
"github.com/zalando/skipper/filters"
1616
)
1717

@@ -235,7 +235,7 @@ func (d decompress) Response(ctx filters.FilterContext) {
235235
sb[DecompressionNotPossible] = true
236236
sb[DecompressionError] = err
237237

238-
log.Errorf("Error while initializing decompression: %v", err)
238+
ctx.Logger().Errorf("Error while initializing decompression: %v", err)
239239
return
240240
}
241241

0 commit comments

Comments
 (0)