@@ -126,16 +126,15 @@ func loadOAuth2From(rootCfg ConfigProvider) {
126126 OAuth2 .Enabled = sec .Key ("ENABLE" ).MustBool (OAuth2 .Enabled )
127127 }
128128
129- if ! OAuth2 .Enabled {
130- return
131- }
132-
133- jwtSecretBase64 := loadSecret (sec , "JWT_SECRET_URI" , "JWT_SECRET" )
134-
135129 if ! filepath .IsAbs (OAuth2 .JWTSigningPrivateKeyFile ) {
136130 OAuth2 .JWTSigningPrivateKeyFile = filepath .Join (AppDataPath , OAuth2 .JWTSigningPrivateKeyFile )
137131 }
138132
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" )
139138 if InstallLock {
140139 jwtSecretBytes , err := generate .DecodeJwtSecretBase64 (jwtSecretBase64 )
141140 if err != nil {
@@ -157,20 +156,16 @@ func loadOAuth2From(rootCfg ConfigProvider) {
157156 }
158157}
159158
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
162159var generalSigningSecret atomic.Pointer [[]byte ]
163160
164161func GetGeneralTokenSigningSecret () []byte {
165162 old := generalSigningSecret .Load ()
166163 if old == nil || len (* old ) == 0 {
167164 jwtSecret , _ , err := generate .NewJwtSecretWithBase64 ()
168165 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 )
170167 }
171168 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" )
174169 return jwtSecret
175170 }
176171 return * generalSigningSecret .Load ()
0 commit comments