Skip to content

Commit 464ae81

Browse files
Gustedearl-warren
authored andcommitted
[GITEA] Refactor generation of JWT secret
- Remove non base64-ed version of JWT secret generation. Because all occurences need the Base64 version. (cherry picked from commit 6a6b5a31a8e38cb953fcca1c8847ea219234f10c) (cherry picked from commit 066b8ca6b40a7342352983de35f1ca6683927426)
1 parent e71b5a0 commit 464ae81

5 files changed

Lines changed: 8 additions & 17 deletions

File tree

cmd/generate.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ func runGenerateInternalToken(c *cli.Context) error {
7070
}
7171

7272
func runGenerateLfsJwtSecret(c *cli.Context) error {
73-
_, jwtSecretBase64, err := generate.NewJwtSecretBase64()
73+
_, jwtSecretBase64, err := generate.NewJwtSecret()
7474
if err != nil {
7575
return err
7676
}

modules/generate/generate.go

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -38,22 +38,14 @@ func NewInternalToken() (string, error) {
3838
return internalToken, nil
3939
}
4040

41-
// NewJwtSecret generates a new value intended to be used for JWT secrets.
42-
func NewJwtSecret() ([]byte, error) {
41+
// NewJwtSecret generates a new base64 encoded value intended to be used for JWT secrets.
42+
func NewJwtSecret() ([]byte, string, error) {
4343
bytes := make([]byte, 32)
44-
_, err := io.ReadFull(rand.Reader, bytes)
45-
if err != nil {
46-
return nil, err
47-
}
48-
return bytes, nil
49-
}
50-
51-
// NewJwtSecretBase64 generates a new base64 encoded value intended to be used for JWT secrets.
52-
func NewJwtSecretBase64() ([]byte, string, error) {
53-
bytes, err := NewJwtSecret()
44+
_, err := rand.Read(bytes)
5445
if err != nil {
5546
return nil, "", err
5647
}
48+
5749
return bytes, base64.RawURLEncoding.EncodeToString(bytes), nil
5850
}
5951

modules/setting/lfs.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ func loadLFSFrom(rootCfg ConfigProvider) error {
6464
LFS.JWTSecretBase64 = loadSecret(rootCfg.Section("server"), "LFS_JWT_SECRET_URI", "LFS_JWT_SECRET")
6565
LFS.JWTSecretBytes, err = util.Base64FixedDecode(base64.RawURLEncoding, []byte(LFS.JWTSecretBase64), 32)
6666
if err != nil {
67-
LFS.JWTSecretBytes, LFS.JWTSecretBase64, err = generate.NewJwtSecretBase64()
67+
LFS.JWTSecretBytes, LFS.JWTSecretBase64, err = generate.NewJwtSecret()
6868
if err != nil {
6969
return fmt.Errorf("error generating JWT Secret for custom config: %v", err)
7070
}

modules/setting/oauth2.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,12 +138,11 @@ func loadOAuth2From(rootCfg ConfigProvider) {
138138

139139
if InstallLock {
140140
if _, err := util.Base64FixedDecode(base64.RawURLEncoding, []byte(OAuth2.JWTSecretBase64), 32); err != nil {
141-
key, err := generate.NewJwtSecret()
141+
_, OAuth2.JWTSecretBase64, err = generate.NewJwtSecret()
142142
if err != nil {
143143
log.Fatal("error generating JWT secret: %v", err)
144144
}
145145

146-
OAuth2.JWTSecretBase64 = base64.RawURLEncoding.EncodeToString(key)
147146
saveCfg, err := rootCfg.PrepareSaving()
148147
if err != nil {
149148
log.Fatal("save oauth2.JWT_SECRET failed: %v", err)

routers/install/install.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ func SubmitInstall(ctx *context.Context) {
413413
cfg.Section("server").Key("LFS_START_SERVER").SetValue("true")
414414
cfg.Section("lfs").Key("PATH").SetValue(form.LFSRootPath)
415415
var lfsJwtSecret string
416-
if _, lfsJwtSecret, err = generate.NewJwtSecretBase64(); err != nil {
416+
if _, lfsJwtSecret, err = generate.NewJwtSecret(); err != nil {
417417
ctx.RenderWithErr(ctx.Tr("install.lfs_jwt_secret_failed", err), tplInstall, &form)
418418
return
419419
}

0 commit comments

Comments
 (0)