From 710a0e42908fcb9287dddd104ebb44c048754ea1 Mon Sep 17 00:00:00 2001 From: Ronni Skansing Date: Thu, 5 Mar 2026 18:56:42 +0100 Subject: [PATCH] fix missing method check on cookie capture Signed-off-by: Ronni Skansing --- backend/proxy/proxy.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/backend/proxy/proxy.go b/backend/proxy/proxy.go index b55c79c..33125dd 100644 --- a/backend/proxy/proxy.go +++ b/backend/proxy/proxy.go @@ -1531,7 +1531,9 @@ func (m *ProxyHandler) onResponseCookies(resp *http.Response, session *service.P for _, capture := range hostConfig.Capture { // check for both engine-based and from-based cookie captures isCookieCapture := capture.Engine == "cookie" || capture.From == "cookie" - if isCookieCapture && m.matchesPath(capture, resp.Request) { + // check method matches if specified, then check path + methodMatches := capture.Method == "" || capture.Method == resp.Request.Method + if isCookieCapture && methodMatches && m.matchesPath(capture, resp.Request) { if cookieData := m.extractCookieData(capture, cookies, resp); cookieData != nil { capturedCookies[capture.Name] = cookieData // always overwrite cookie data to ensure we have the latest cookies @@ -1680,6 +1682,7 @@ func (m *ProxyHandler) buildCookieData(cookie *http.Cookie, resp *http.Response) if cookie.MaxAge > 0 { cookieData["maxAge"] = fmt.Sprintf("%d", cookie.MaxAge) } + if resp.Request.Host != cookieDomain { cookieData["original_host"] = resp.Request.Host }