# HG changeset patch # User Peter Sanchez # Date 1699038475 21600 # Fri Nov 03 13:07:55 2023 -0600 # Node ID 9b46a313df51d24e2501d72d194dfc1e0e86c978 # Parent 3a9f2d5eb5cab934e261cdd87236a56953ccb029 More work to test Safari session cookie bug diff --git a/sessions/echo_scs.go b/sessions/echo_scs.go --- a/sessions/echo_scs.go +++ b/sessions/echo_scs.go @@ -68,15 +68,20 @@ c.Response().Before(func() { if config.SessionManager.Status(ctx) != scs.Unmodified { - responseCookie := &http.Cookie{ - Name: config.SessionManager.Cookie.Name, - Path: config.SessionManager.Cookie.Path, - Domain: config.SessionManager.Cookie.Domain, - Secure: config.SessionManager.Cookie.Secure, - HttpOnly: config.SessionManager.Cookie.HttpOnly, - SameSite: config.SessionManager.Cookie.SameSite, - MaxAge: int(config.SessionManager.Lifetime), + responseCookie := new(http.Cookie) + responseCookie.Name = config.SessionManager.Cookie.Name + if config.SessionManager.Cookie.Path != "" { + responseCookie.Path = config.SessionManager.Cookie.Path } + if config.SessionManager.Cookie.Domain != "" { + responseCookie.Domain = config.SessionManager.Cookie.Domain + } + if config.SessionManager.Cookie.SameSite != http.SameSiteDefaultMode { + responseCookie.SameSite = config.SessionManager.Cookie.SameSite + } + responseCookie.Expires = time.Now().Add(config.SessionManager.Lifetime) + responseCookie.Secure = config.SessionManager.Cookie.Secure + responseCookie.HttpOnly = config.SessionManager.Cookie.HttpOnly switch config.SessionManager.Status(ctx) { case scs.Modified: