@@ -19,6 +19,7 @@ import (
19
19
20
20
"github.com/coreos/go-oidc/v3/oidc"
21
21
"github.com/go-chi/chi/v5"
22
+ "github.com/pkg/errors"
22
23
"github.com/rebuy-de/rebuy-go-sdk/v8/pkg/cmdutil"
23
24
"github.com/rebuy-de/rebuy-go-sdk/v8/pkg/logutil"
24
25
"github.com/rebuy-de/rebuy-go-sdk/v8/pkg/typeutil"
@@ -64,7 +65,7 @@ func (m *authMiddleware) handler(next http.Handler) http.Handler {
64
65
claims , err := m .getClaimFromRequest (w , r )
65
66
if err != nil {
66
67
logutil .Get (r .Context ()).Warnf ("auth middleware: %v" , err .Error ())
67
- } else {
68
+ } else if claims != nil {
68
69
ctx := r .Context ()
69
70
ctx = typeutil .ContextWithValueSingleton (ctx , claims )
70
71
r = r .WithContext (ctx )
@@ -141,6 +142,9 @@ func NewAuthMiddleware(ctx context.Context, config AuthConfig) (func(http.Handle
141
142
if err != nil {
142
143
return nil , fmt .Errorf ("get auth cookie: %w" , err )
143
144
}
145
+ if token == nil {
146
+ return nil , nil
147
+ }
144
148
145
149
tokenSource := oauth2Config .TokenSource (r .Context (), token )
146
150
ui , err := provider .UserInfo (r .Context (), tokenSource )
@@ -243,6 +247,9 @@ func DevAuthMiddleware(roles ...string) func(http.Handler) http.Handler {
243
247
}),
244
248
getClaimFromRequest : func (_ http.ResponseWriter , r * http.Request ) (* AuthInfo , error ) {
245
249
cookie , err := r .Cookie ("rebuy-go-sdk-auth" )
250
+ if errors .Is (err , http .ErrNoCookie ) {
251
+ return nil , nil
252
+ }
246
253
if err != nil {
247
254
return nil , fmt .Errorf ("get cookie: %w" , err )
248
255
}
@@ -389,8 +396,11 @@ func (e cookieEncrypter[T]) WriteCookie(w http.ResponseWriter, obj *T) error {
389
396
390
397
func (e cookieEncrypter [T ]) ReadCookie (r * http.Request ) (* T , error ) {
391
398
cookie , err := r .Cookie (e .cookieName ())
399
+ if errors .Is (err , http .ErrNoCookie ) {
400
+ return nil , nil
401
+ }
392
402
if err != nil {
393
- return nil , fmt .Errorf ("get auth cookie" )
403
+ return nil , fmt .Errorf ("get auth cookie: %w" , err )
394
404
}
395
405
396
406
token , err := e .Decrypt (cookie .Value )
0 commit comments