From 96516b1f718ac6af8f77c801d6cdd08ff2295e31 Mon Sep 17 00:00:00 2001 From: askuy Date: Fri, 11 Jul 2025 16:54:42 +0800 Subject: [PATCH] x-header expose --- core/constant/env.go | 2 ++ core/eapp/env.go | 6 ++++++ server/egin/interceptor.go | 5 +++++ 3 files changed, 13 insertions(+) diff --git a/core/constant/env.go b/core/constant/env.go index e96660d6..d33c2207 100644 --- a/core/constant/env.go +++ b/core/constant/env.go @@ -40,4 +40,6 @@ const ( EgoDefaultConfigExt = "EGO_DEFAULT_CONFIG_EXT" // EgoDeploymentEnv defines deployment environment, such as "k8s", "ecs" EgoDeploymentEnv = "EGO_DEPLOYMENT_ENV" + // EgoHeaderExpose header expose, default value is "x-expose" + EgoHeaderExpose = "EGO_HEADER_EXPOSE" ) diff --git a/core/eapp/env.go b/core/eapp/env.go index 81f2b8e5..f5b21832 100644 --- a/core/eapp/env.go +++ b/core/eapp/env.go @@ -22,6 +22,7 @@ var ( egoGovernorEnableConfig string egoLogTimeType string egoLogEnableAddCaller bool + egoHeaderExpose string ) func initEnv() { @@ -43,6 +44,7 @@ func initEnv() { egoLogTimeType = "%Y-%m-%d %H:%M:%S" } egoLogEnableAddCaller = ienv.EnvOrBool(constant.EgoLogEnableAddCaller, false) + egoHeaderExpose = ienv.EnvOrStr(constant.EgoHeaderExpose, "x-expose") } // AppMode returns application running mode. @@ -114,3 +116,7 @@ func SetEgoDebug(flag string) { func EgoLogEnableAddCaller() bool { return egoLogEnableAddCaller } + +func EgoHeaderExpose() string { + return egoHeaderExpose +} diff --git a/server/egin/interceptor.go b/server/egin/interceptor.go index 7aa690d8..f922e9da 100644 --- a/server/egin/interceptor.go +++ b/server/egin/interceptor.go @@ -157,6 +157,11 @@ func (c *Container) defaultServerInterceptor() gin.HandlerFunc { for _, key := range loggerKeys { if value := tools.ContextValue(ctx.Request.Context(), key); value != "" { fields = append(fields, elog.FieldCustomKeyValue(key, value)) + // x-expose 需要在这里获取 + if strings.HasPrefix(key, eapp.EgoHeaderExpose()) { + // 设置到ctx response header + ctx.Writer.Header().Set(key, value) + } } }