diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2022-10-28 17:58:32 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-28 17:58:32 +0800 |
commit | e09025fdce7387a182424af35e63a335297fdc46 (patch) | |
tree | 871da6c4efea611c1661bc622b911154da23acd9 /modules/setting/setting.go | |
parent | 07178f4d0ce4a15f6c3a9ff6073a306d44266432 (diff) | |
download | gitea-e09025fdce7387a182424af35e63a335297fdc46.tar.gz gitea-e09025fdce7387a182424af35e63a335297fdc46.zip |
Revert: auto generate INTERNAL_TOKEN (#21608)
Follow #19663
Some users do cluster deployment, they still depend on this
auto-generating behavior.
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Diffstat (limited to 'modules/setting/setting.go')
-rw-r--r-- | modules/setting/setting.go | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/modules/setting/setting.go b/modules/setting/setting.go index f93be2fbd1..9c4f4ced12 100644 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -22,6 +22,7 @@ import ( "time" "code.gitea.io/gitea/modules/container" + "code.gitea.io/gitea/modules/generate" "code.gitea.io/gitea/modules/json" "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/user" @@ -962,6 +963,11 @@ func loadFromConf(allowEmpty bool, extraConfig string) { SuccessfulTokensCacheSize = sec.Key("SUCCESSFUL_TOKENS_CACHE_SIZE").MustInt(20) InternalToken = loadSecret(sec, "INTERNAL_TOKEN_URI", "INTERNAL_TOKEN") + if InstallLock && InternalToken == "" { + // if Gitea has been installed but the InternalToken hasn't been generated (upgrade from an old release), we should generate + // some users do cluster deployment, they still depend on this auto-generating behavior. + generateSaveInternalToken() + } cfgdata := sec.Key("PASSWORD_COMPLEXITY").Strings(",") if len(cfgdata) == 0 { @@ -1182,6 +1188,19 @@ func loadSecret(sec *ini.Section, uriKey, verbatimKey string) string { } } +// generateSaveInternalToken generates and saves the internal token to app.ini +func generateSaveInternalToken() { + token, err := generate.NewInternalToken() + if err != nil { + log.Fatal("Error generate internal token: %v", err) + } + + InternalToken = token + CreateOrAppendToCustomConf("security.INTERNAL_TOKEN", func(cfg *ini.File) { + cfg.Section("security").Key("INTERNAL_TOKEN").SetValue(token) + }) +} + // MakeAbsoluteAssetURL returns the absolute asset url prefix without a trailing slash func MakeAbsoluteAssetURL(appURL, staticURLPrefix string) string { parsedPrefix, err := url.Parse(strings.TrimSuffix(staticURLPrefix, "/")) |