Skip to content

Commit 6b7ce72

Browse files
KN4CK3Rlunny
andauthored
Prevent Authorization header for presigned LFS urls (#21531) (#21569)
Backport of #21531 Co-authored-by: Lunny Xiao <[email protected]>
1 parent 92b5f48 commit 6b7ce72

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

services/lfs/server.go

+9-2
Original file line numberDiff line numberDiff line change
@@ -438,14 +438,21 @@ func buildObjectResponse(rc *requestContext, pointer lfs_module.Pointer, downloa
438438
}
439439

440440
if download {
441-
rep.Actions["download"] = &lfs_module.Link{Href: rc.DownloadLink(pointer), Header: header}
441+
var link *lfs_module.Link
442442
if setting.LFS.ServeDirect {
443443
// If we have a signed url (S3, object storage), redirect to this directly.
444444
u, err := storage.LFS.URL(pointer.RelativePath(), pointer.Oid)
445445
if u != nil && err == nil {
446-
rep.Actions["download"] = &lfs_module.Link{Href: u.String(), Header: header}
446+
// Presigned url does not need the Authorization header
447+
// https://github.com/go-gitea/gitea/issues/21525
448+
delete(header, "Authorization")
449+
link = &lfs_module.Link{Href: u.String(), Header: header}
447450
}
448451
}
452+
if link == nil {
453+
link = &lfs_module.Link{Href: rc.DownloadLink(pointer), Header: header}
454+
}
455+
rep.Actions["download"] = link
449456
}
450457
if upload {
451458
rep.Actions["upload"] = &lfs_module.Link{Href: rc.UploadLink(pointer), Header: header}

0 commit comments

Comments
 (0)