From b19333726c2bdbea767df0b0d74b86d85430388b Mon Sep 17 00:00:00 2001 From: Lars Date: Mon, 27 Jan 2025 17:10:30 +0100 Subject: [PATCH] fix: allow scim content type wildcards (#9245) # Which Problems Are Solved - requests to the scim interface with content type `*/*` are rejected # How the Problems Are Solved - `*/*` is accepted as content type # Additional Context Part of #8140 --- .../api/scim/middleware/content_type_middleware.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/internal/api/scim/middleware/content_type_middleware.go b/internal/api/scim/middleware/content_type_middleware.go index 9b456bb14..2f9b8cc00 100644 --- a/internal/api/scim/middleware/content_type_middleware.go +++ b/internal/api/scim/middleware/content_type_middleware.go @@ -13,8 +13,10 @@ import ( ) const ( - ContentTypeScim = "application/scim+json" - ContentTypeJson = "application/json" + ContentTypeScim = "application/scim+json" + ContentTypeJson = "application/json" + ContentTypeApplicationWildcard = "application/*" + ContentTypeWildcard = "*/*" ) func ContentTypeMiddleware(next middleware.HandlerFuncWithError) middleware.HandlerFuncWithError { @@ -44,7 +46,11 @@ func validateContentType(contentType string) bool { return false } - if mediaType != "" && !strings.EqualFold(mediaType, ContentTypeJson) && !strings.EqualFold(mediaType, ContentTypeScim) { + if mediaType != "" && + !strings.EqualFold(mediaType, ContentTypeWildcard) && + !strings.EqualFold(mediaType, ContentTypeApplicationWildcard) && + !strings.EqualFold(mediaType, ContentTypeJson) && + !strings.EqualFold(mediaType, ContentTypeScim) { return false }