From 0347cfc7a59e4c33932c4dc980be0e4ce38b1dce Mon Sep 17 00:00:00 2001 From: Deng Ming Date: Wed, 20 Oct 2021 20:39:04 +0800 Subject: [PATCH] fxi4782: must set status before rendering error page --- CHANGELOG.md | 2 ++ server/web/config.go | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 18231a90..ddac259a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -68,6 +68,8 @@ - Fix 4674: Tx Orm missing debug log [4756](https://github.com/beego/beego/pull/4756) - Fix 4759: fix numeric notation of permissions [4759](https://github.com/beego/beego/pull/4759) - set default rate and capacity for ratelimit filter [4796](https://github.com/beego/beego/pull/4796) +- Fix 4782: must set status before rendering error page [4797](https://github.com/beego/beego/pull/4797) + ## Fix Sonar - [4677](https://github.com/beego/beego/pull/4677) diff --git a/server/web/config.go b/server/web/config.go index 6bddfe4a..006201a6 100644 --- a/server/web/config.go +++ b/server/web/config.go @@ -507,14 +507,16 @@ func defaultRecoverPanic(ctx *context.Context, cfg *Config) { logs.Critical(fmt.Sprintf("%s:%d", file, line)) stack = stack + fmt.Sprintln(fmt.Sprintf("%s:%d", file, line)) } - if cfg.RunMode == DEV && cfg.EnableErrorsRender { - showErr(err, ctx, stack) - } + if ctx.Output.Status != 0 { ctx.ResponseWriter.WriteHeader(ctx.Output.Status) } else { ctx.ResponseWriter.WriteHeader(500) } + + if cfg.RunMode == DEV && cfg.EnableErrorsRender { + showErr(err, ctx, stack) + } } }