@@ -126,16 +126,15 @@ func loadOAuth2From(rootCfg ConfigProvider) {
126
126
OAuth2 .Enabled = sec .Key ("ENABLE" ).MustBool (OAuth2 .Enabled )
127
127
}
128
128
129
- if ! OAuth2 .Enabled {
130
- return
131
- }
132
-
133
- jwtSecretBase64 := loadSecret (sec , "JWT_SECRET_URI" , "JWT_SECRET" )
134
-
135
129
if ! filepath .IsAbs (OAuth2 .JWTSigningPrivateKeyFile ) {
136
130
OAuth2 .JWTSigningPrivateKeyFile = filepath .Join (AppDataPath , OAuth2 .JWTSigningPrivateKeyFile )
137
131
}
138
132
133
+ // FIXME: at the moment, no matter oauth2 is enabled or not, it must generate a "oauth2 JWT_SECRET"
134
+ // Because this secret is also used as GeneralTokenSigningSecret (as a quick not-that-breaking fix for some legacy problems).
135
+ // Including: CSRF token, account validation token, etc ...
136
+ // In main branch, the signing token should be refactored (eg: one unique for LFS/OAuth2/etc ...)
137
+ jwtSecretBase64 := loadSecret (sec , "JWT_SECRET_URI" , "JWT_SECRET" )
139
138
if InstallLock {
140
139
jwtSecretBytes , err := generate .DecodeJwtSecretBase64 (jwtSecretBase64 )
141
140
if err != nil {
@@ -157,20 +156,16 @@ func loadOAuth2From(rootCfg ConfigProvider) {
157
156
}
158
157
}
159
158
160
- // generalSigningSecret is used as container for a []byte value
161
- // instead of an additional mutex, we use CompareAndSwap func to change the value thread save
162
159
var generalSigningSecret atomic.Pointer [[]byte ]
163
160
164
161
func GetGeneralTokenSigningSecret () []byte {
165
162
old := generalSigningSecret .Load ()
166
163
if old == nil || len (* old ) == 0 {
167
164
jwtSecret , _ , err := generate .NewJwtSecretWithBase64 ()
168
165
if err != nil {
169
- log .Fatal ("Unable to generate general JWT secret: %s " , err . Error () )
166
+ log .Fatal ("Unable to generate general JWT secret: %v " , err )
170
167
}
171
168
if generalSigningSecret .CompareAndSwap (old , & jwtSecret ) {
172
- // FIXME: in main branch, the signing token should be refactored (eg: one unique for LFS/OAuth2/etc ...)
173
- LogStartupProblem (1 , log .WARN , "OAuth2 is not enabled, unable to use a persistent signing secret, a new one is generated, which is not persistent between restarts and cluster nodes" )
174
169
return jwtSecret
175
170
}
176
171
return * generalSigningSecret .Load ()
0 commit comments