🐛 [Bug]: Adaptator + otelfiber issue #2641 (#2772)

pull/2773/head
RW 2023-12-22 14:49:58 +01:00 committed by GitHub
parent 1fac52a42a
commit c49faf9a8a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 0 deletions

View File

@ -76,6 +76,7 @@ func HTTPMiddleware(mw func(http.Handler) http.Handler) fiber.Handler {
c.Request().Header.SetMethod(r.Method)
c.Request().SetRequestURI(r.RequestURI)
c.Request().SetHost(r.Host)
c.Request().Header.SetHost(r.Host)
for key, val := range r.Header {
for _, v := range val {
c.Request().Header.Set(key, v)
@ -128,6 +129,7 @@ func handlerFunc(app *fiber.App, h ...fiber.Handler) http.HandlerFunc {
req.Header.SetMethod(r.Method)
req.SetRequestURI(r.RequestURI)
req.SetHost(r.Host)
req.Header.SetHost(r.Host)
for key, val := range r.Header {
for _, v := range val {
req.Header.Set(key, v)

View File

@ -116,6 +116,7 @@ var (
)
func Test_HTTPMiddleware(t *testing.T) {
const expectedHost = "foobar.com"
tests := []struct {
name string
url string
@ -148,6 +149,7 @@ func Test_HTTPMiddleware(t *testing.T) {
w.WriteHeader(http.StatusMethodNotAllowed)
return
}
r = r.WithContext(context.WithValue(r.Context(), TestContextKey, "okay"))
r = r.WithContext(context.WithValue(r.Context(), TestContextSecondKey, "not_okay"))
r = r.WithContext(context.WithValue(r.Context(), TestContextSecondKey, "okay"))
@ -180,6 +182,7 @@ func Test_HTTPMiddleware(t *testing.T) {
for _, tt := range tests {
req, err := http.NewRequestWithContext(context.Background(), tt.method, tt.url, nil)
req.Host = expectedHost
utils.AssertEqual(t, nil, err)
resp, err := app.Test(req)
@ -188,6 +191,7 @@ func Test_HTTPMiddleware(t *testing.T) {
}
req, err := http.NewRequestWithContext(context.Background(), fiber.MethodPost, "/", nil)
req.Host = expectedHost
utils.AssertEqual(t, nil, err)
resp, err := app.Test(req)
@ -239,6 +243,8 @@ func testFiberToHandlerFunc(t *testing.T, checkDefaultPort bool, app ...*fiber.A
utils.AssertEqual(t, expectedRequestURI, string(c.Context().RequestURI()), "RequestURI")
utils.AssertEqual(t, expectedContentLength, c.Context().Request.Header.ContentLength(), "ContentLength")
utils.AssertEqual(t, expectedHost, c.Hostname(), "Host")
utils.AssertEqual(t, expectedHost, string(c.Request().Header.Host()), "Host")
utils.AssertEqual(t, "http://"+expectedHost, c.BaseURL(), "BaseURL")
utils.AssertEqual(t, expectedRemoteAddr, c.Context().RemoteAddr().String(), "RemoteAddr")
body := string(c.Body())