- 新增 app_configs 表与 appconfig 注册表:读取优先级 页面 → .env → 默认,删除即回退 - 页面可配 7 项:支付回调基址、成功回跳、Webhook 密钥(加密入库)、未验签放行开关、CORS、可信代理、GeoIP 路径 - 引导密钥(JWT_SECRET / OPSLIC_MASTER_KEY / OFFLINE_LICENSE_SEED)与部署参数只读展示掩码+指纹,永不入库 - 校验:URL 格式、密钥长度≥16、CIDR、release 下禁止开启未验签回调;变更写审计日志 - 消费点改造:支付回调地址、Waffo 回跳、webhook 验签、可信代理、CORS、GeoIP 统一走配置中心 - 前端新增「审计与设置 → 运行配置」页(分组表格 + 来源标记 + 编辑弹窗 + 恢复默认) - .env.example 补注释:哪些必须留在 .env、哪些已收敛到页面
This commit is contained in:
1 parent
b0b611eee2
commit
83a3630404
17 files changed
+1204
-33
No files matched your search
@@ -3,6 +3,7 @@ package router
|
||||
import (
|
||||
"backend/config"
|
||||
"backend/internal/controller/analytics"
|
||||
appconfigctl "backend/internal/controller/appconfig"
|
||||
"backend/internal/controller/auth"
|
||||
"backend/internal/controller/customer"
|
||||
"backend/internal/controller/entitlement"
|
||||
@@ -13,8 +14,8 @@ import (
|
||||
"backend/internal/controller/product"
|
||||
"backend/internal/controller/setting"
|
||||
synccontroller "backend/internal/controller/sync"
|
||||
"backend/internal/service/appconfig"
|
||||
"backend/middleware"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/gin-contrib/gzip"
|
||||
@@ -64,9 +65,9 @@ func SetupRouter(db *gorm.DB, cfg *config.Config) *gin.Engine {
|
||||
r.RedirectFixedPath = false
|
||||
|
||||
// 信任代理:默认不信任任何代理头(X-Forwarded-For 可伪造,会绕过按 IP 限流);
|
||||
// 经 nginx 反代的节点用 TRUSTED_PROXIES 指定其内网 CIDR,多个用逗号分隔 // Logan.Li
|
||||
if proxies := strings.TrimSpace(os.Getenv("TRUSTED_PROXIES")); proxies != "" {
|
||||
if err := r.SetTrustedProxies(strings.Split(proxies, ",")); err != nil {
|
||||
// 经 nginx 反代的节点用「可信反代网段」指定其内网 CIDR(后台可配,重启生效) // Logan.Li
|
||||
if proxies := appconfig.List("TRUSTED_PROXIES"); len(proxies) > 0 {
|
||||
if err := r.SetTrustedProxies(proxies); err != nil {
|
||||
panic("TRUSTED_PROXIES 配置非法: " + err.Error())
|
||||
}
|
||||
} else if err := r.SetTrustedProxies(nil); err != nil {
|
||||
@@ -108,6 +109,7 @@ func SetupRouter(db *gorm.DB, cfg *config.Config) *gin.Engine {
|
||||
settingController := setting.NewSettingController(db)
|
||||
syncController := synccontroller.NewController(db, cfg)
|
||||
paymentConfigController := paymentctl.NewPaymentConfigController(db, cfg)
|
||||
appConfigController := appconfigctl.NewController(db)
|
||||
|
||||
api := r.Group("/api")
|
||||
{
|
||||
@@ -272,6 +274,10 @@ func SetupRouter(db *gorm.DB, cfg *config.Config) *gin.Engine {
|
||||
register(system, "GET", "/waffo", settingController.GetWaffo)
|
||||
register(system, "PUT", "/waffo", settingController.UpdateWaffo)
|
||||
register(system, "POST", "/waffo/test", settingController.DebugWaffo)
|
||||
// 运行配置中心(统一在页面维护 .env 里的业务参数) // Logan.Li
|
||||
register(system, "GET", "/runtime", appConfigController.Overview)
|
||||
register(system, "PUT", "/runtime", appConfigController.Update)
|
||||
register(system, "POST", "/runtime/reset", appConfigController.Reset)
|
||||
}
|
||||
|
||||
// 节点互联管理(双向授权同步) // Logan.Li
|
||||
|
||||
Reference in new issue
Block a user