Use camo.Always instead of camo.Allways (#32097)

Fix #31575

https://gitea.com/gitea/docs/pulls/73
(cherry picked from commit 8e2dd5d3ddfb442937c79f05df88d18b856952cb)
(cherry picked from commit 2ffb08bb88)
This commit is contained in:
Lunny Xiao 2024-09-21 17:50:54 +08:00 committed by forgejo-backport-action
parent 74712e3400
commit ba7da0af31
4 changed files with 16 additions and 5 deletions

View file

@ -529,7 +529,8 @@ INTERNAL_TOKEN =
;; HMAC to encode urls with, it **is required** if camo is enabled. ;; HMAC to encode urls with, it **is required** if camo is enabled.
;HMAC_KEY = ;HMAC_KEY =
;; Set to true to use camo for https too lese only non https urls are proxyed ;; Set to true to use camo for https too lese only non https urls are proxyed
;ALLWAYS = false ;; ALLWAYS is deprecated and will be removed in the future
;ALWAYS = false
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

View file

@ -38,7 +38,7 @@ func camoHandleLink(link string) string {
if setting.Camo.Enabled { if setting.Camo.Enabled {
lnkURL, err := url.Parse(link) lnkURL, err := url.Parse(link)
if err == nil && lnkURL.IsAbs() && !strings.HasPrefix(link, setting.AppURL) && if err == nil && lnkURL.IsAbs() && !strings.HasPrefix(link, setting.AppURL) &&
(setting.Camo.Allways || lnkURL.Scheme != "https") { (setting.Camo.Always || lnkURL.Scheme != "https") {
return CamoEncode(link) return CamoEncode(link)
} }
} }

View file

@ -28,7 +28,7 @@ func TestCamoHandleLink(t *testing.T) {
"https://image.proxy/eivin43gJwGVIjR9MiYYtFIk0mw/aHR0cDovL3Rlc3RpbWFnZXMub3JnL2ltZy5qcGc", "https://image.proxy/eivin43gJwGVIjR9MiYYtFIk0mw/aHR0cDovL3Rlc3RpbWFnZXMub3JnL2ltZy5qcGc",
camoHandleLink("http://testimages.org/img.jpg")) camoHandleLink("http://testimages.org/img.jpg"))
setting.Camo.Allways = true setting.Camo.Always = true
assert.Equal(t, assert.Equal(t,
"https://gitea.com/img.jpg", "https://gitea.com/img.jpg",
camoHandleLink("https://gitea.com/img.jpg")) camoHandleLink("https://gitea.com/img.jpg"))

View file

@ -3,18 +3,28 @@
package setting package setting
import "code.gitea.io/gitea/modules/log" import (
"strconv"
"code.gitea.io/gitea/modules/log"
)
var Camo = struct { var Camo = struct {
Enabled bool Enabled bool
ServerURL string `ini:"SERVER_URL"` ServerURL string `ini:"SERVER_URL"`
HMACKey string `ini:"HMAC_KEY"` HMACKey string `ini:"HMAC_KEY"`
Allways bool Always bool
}{} }{}
func loadCamoFrom(rootCfg ConfigProvider) { func loadCamoFrom(rootCfg ConfigProvider) {
mustMapSetting(rootCfg, "camo", &Camo) mustMapSetting(rootCfg, "camo", &Camo)
if Camo.Enabled { if Camo.Enabled {
oldValue := rootCfg.Section("camo").Key("ALLWAYS").MustString("")
if oldValue != "" {
log.Warn("camo.ALLWAYS is deprecated, use camo.ALWAYS instead")
Camo.Always, _ = strconv.ParseBool(oldValue)
}
if Camo.ServerURL == "" || Camo.HMACKey == "" { if Camo.ServerURL == "" || Camo.HMACKey == "" {
log.Fatal(`Camo settings require "SERVER_URL" and HMAC_KEY`) log.Fatal(`Camo settings require "SERVER_URL" and HMAC_KEY`)
} }