mirror of
https://github.com/pgsty/minio.git
synced 2026-09-05 18:16:16 +03:00
fix: keep load-failed buckets fail-closed in the CORS lookup
Restore the load-failure set that the cleanup removed. A presigned URL is authenticated by its signature, so for such requests the bucket's CORS document is the only origin boundary a browser enforces; a real bucket whose metadata failed to load must therefore not be answered with the global policy, and without this bit it is indistinguishable from a name that is not a bucket. Two helpers own the set's lifecycle; the resident-only lookup and the removal of the internal-namespace special case stay. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PvgysXDmhPBBimCReYtA8q Signed-off-by: Feng Ruohang <rh@vonng.com>
This commit is contained in:
+4
-3
@@ -790,9 +790,10 @@ func corsHandler(handler http.Handler) http.Handler {
|
||||
// Resident-only lookup: this runs before authentication with a
|
||||
// client-supplied path segment as the bucket name, so it must
|
||||
// never load or cache metadata. While startup loading is still
|
||||
// running, and for a bucket whose stored CORS document failed to
|
||||
// parse, the request gets no CORS headers; any other non-resident
|
||||
// name falls back to the global policy below.
|
||||
// running, for a real bucket whose metadata failed to load, and
|
||||
// for a bucket whose stored CORS document failed to parse, the
|
||||
// request gets no CORS headers; any other non-resident name falls
|
||||
// back to the global policy below.
|
||||
cfg, _, err := globalBucketMetadataSys.GetResidentCorsConfig(bucket)
|
||||
if err == nil && cfg != nil {
|
||||
if applyBucketCors(w, r, cfg) {
|
||||
|
||||
Reference in New Issue
Block a user