Skip to content

Commit fb43ca1

Browse files
authored
Merge pull request #229 from rebuy-de/no-cookie-error
do not handle missing auth cookie as error
2 parents 9646a74 + 8e185de commit fb43ca1

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

pkg/webutil/auth.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import (
1919

2020
"github.com/coreos/go-oidc/v3/oidc"
2121
"github.com/go-chi/chi/v5"
22+
"github.com/pkg/errors"
2223
"github.com/rebuy-de/rebuy-go-sdk/v8/pkg/cmdutil"
2324
"github.com/rebuy-de/rebuy-go-sdk/v8/pkg/logutil"
2425
"github.com/rebuy-de/rebuy-go-sdk/v8/pkg/typeutil"
@@ -64,7 +65,7 @@ func (m *authMiddleware) handler(next http.Handler) http.Handler {
6465
claims, err := m.getClaimFromRequest(w, r)
6566
if err != nil {
6667
logutil.Get(r.Context()).Warnf("auth middleware: %v", err.Error())
67-
} else {
68+
} else if claims != nil {
6869
ctx := r.Context()
6970
ctx = typeutil.ContextWithValueSingleton(ctx, claims)
7071
r = r.WithContext(ctx)
@@ -141,6 +142,9 @@ func NewAuthMiddleware(ctx context.Context, config AuthConfig) (func(http.Handle
141142
if err != nil {
142143
return nil, fmt.Errorf("get auth cookie: %w", err)
143144
}
145+
if token == nil {
146+
return nil, nil
147+
}
144148

145149
tokenSource := oauth2Config.TokenSource(r.Context(), token)
146150
ui, err := provider.UserInfo(r.Context(), tokenSource)
@@ -243,6 +247,9 @@ func DevAuthMiddleware(roles ...string) func(http.Handler) http.Handler {
243247
}),
244248
getClaimFromRequest: func(_ http.ResponseWriter, r *http.Request) (*AuthInfo, error) {
245249
cookie, err := r.Cookie("rebuy-go-sdk-auth")
250+
if errors.Is(err, http.ErrNoCookie) {
251+
return nil, nil
252+
}
246253
if err != nil {
247254
return nil, fmt.Errorf("get cookie: %w", err)
248255
}
@@ -389,8 +396,11 @@ func (e cookieEncrypter[T]) WriteCookie(w http.ResponseWriter, obj *T) error {
389396

390397
func (e cookieEncrypter[T]) ReadCookie(r *http.Request) (*T, error) {
391398
cookie, err := r.Cookie(e.cookieName())
399+
if errors.Is(err, http.ErrNoCookie) {
400+
return nil, nil
401+
}
392402
if err != nil {
393-
return nil, fmt.Errorf("get auth cookie")
403+
return nil, fmt.Errorf("get auth cookie: %w", err)
394404
}
395405

396406
token, err := e.Decrypt(cookie.Value)

0 commit comments

Comments
 (0)