diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2024-11-12 10:38:22 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-12 02:38:22 +0000 |
commit | 580e21dd2e9dfb3a3f86f51c4eb188c1bbfa8b11 (patch) | |
tree | c09fe6839b5c2a8b1d829535a6faee4bb6d53774 /modules/private | |
parent | f35e2b0cd1aaee389e4efda5a54976520b9bd4cb (diff) | |
download | gitea-580e21dd2e9dfb3a3f86f51c4eb188c1bbfa8b11.tar.gz gitea-580e21dd2e9dfb3a3f86f51c4eb188c1bbfa8b11.zip |
Refactor LFS SSH and internal routers (#32473)
Gitea instance keeps reporting a lot of errors like "LFS SSH transfer connection denied, pure SSH protocol is disabled". When starting debugging the problem, there are more problems found. Try to address most of them:
* avoid unnecessary server side error logs (change `fail()` to not log them)
* figure out the broken tests/user2/lfs.git (added comments)
* avoid `migratePushMirrors` failure when a repository doesn't exist (ignore them)
* avoid "Authorization" (internal&lfs) header conflicts, remove the tricky "swapAuth" and use "X-Gitea-Internal-Auth"
* make internal token comparing constant time (it wasn't a serous problem because in a real world it's nearly impossible to timing-attack the token, but good to fix and backport)
* avoid duplicate routers (introduce AddOwnerRepoGitLFSRoutes)
* avoid "internal (private)" routes using session/web context (they should use private context)
* fix incorrect "path" usages (use "filepath")
* fix incorrect mocked route point handling (need to check func nil correctly)
* split some tests from "git general tests" to "git misc tests" (to keep "git_general_test.go" simple)
Still no correct result for Git LFS SSH tests. So the code is kept there
(`tests/integration/git_lfs_ssh_test.go`) and a FIXME explains the details.
Diffstat (limited to 'modules/private')
-rw-r--r-- | modules/private/internal.go | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/modules/private/internal.go b/modules/private/internal.go index 9c330a24a8..c7e7773524 100644 --- a/modules/private/internal.go +++ b/modules/private/internal.go @@ -43,7 +43,7 @@ Ensure you are running in the correct environment or set the correct configurati req := httplib.NewRequest(url, method). SetContext(ctx). Header("X-Real-IP", getClientIP()). - Header("Authorization", fmt.Sprintf("Bearer %s", setting.InternalToken)). + Header("X-Gitea-Internal-Auth", fmt.Sprintf("Bearer %s", setting.InternalToken)). SetTLSClientConfig(&tls.Config{ InsecureSkipVerify: true, ServerName: setting.Domain, |