aboutsummaryrefslogtreecommitdiffstats
path: root/modules/setting/setting.go
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2022-10-28 17:58:32 +0800
committerGitHub <noreply@github.com>2022-10-28 17:58:32 +0800
commite09025fdce7387a182424af35e63a335297fdc46 (patch)
tree871da6c4efea611c1661bc622b911154da23acd9 /modules/setting/setting.go
parent07178f4d0ce4a15f6c3a9ff6073a306d44266432 (diff)
downloadgitea-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.go19
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, "/"))