From 3dc0fff1f449c991de7e39d27f869783435f2334 Mon Sep 17 00:00:00 2001 From: Ralf Haferkamp Date: Wed, 24 May 2023 16:21:12 +0200 Subject: [PATCH] proxy: Return an error when autoprovision a user fails Fixes: #6194 --- services/proxy/pkg/middleware/account_resolver.go | 4 ++++ services/proxy/pkg/user/backend/cs3.go | 2 ++ 2 files changed, 6 insertions(+) diff --git a/services/proxy/pkg/middleware/account_resolver.go b/services/proxy/pkg/middleware/account_resolver.go index c8c16c9c7..3847f02e7 100644 --- a/services/proxy/pkg/middleware/account_resolver.go +++ b/services/proxy/pkg/middleware/account_resolver.go @@ -78,10 +78,14 @@ func (m accountResolver) ServeHTTP(w http.ResponseWriter, req *http.Request) { user, err = m.userProvider.CreateUserFromClaims(req.Context(), claims) if err != nil { m.logger.Error().Err(err).Msg("Autoprovisioning user failed") + w.WriteHeader(http.StatusInternalServerError) + return } user, token, err = m.userProvider.GetUserByClaims(req.Context(), "userid", user.Id.OpaqueId) if err != nil { m.logger.Error().Err(err).Str("userid", user.Id.OpaqueId).Msg("Error getting token for autoprovisioned user") + w.WriteHeader(http.StatusUnauthorized) + return } } diff --git a/services/proxy/pkg/user/backend/cs3.go b/services/proxy/pkg/user/backend/cs3.go index 59ef8dbaf..0dcbc8fd1 100644 --- a/services/proxy/pkg/user/backend/cs3.go +++ b/services/proxy/pkg/user/backend/cs3.go @@ -229,6 +229,8 @@ func (c cs3backend) isAlreadyExists(resp *http.Response) (bool, error) { return false, err } + c.logger.Warn().Str("OData Error", oDataErr.Error.Message).Msg("Error Response") + if oDataErr.Error.Code == errorcode.NameAlreadyExists.String() { return true, nil }