mirror of
https://github.com/grafana/grafana.git
synced 2025-07-30 21:42:37 +08:00
Add disabled option for cookie samesite attribute (#21472)
Breaking change: If disabled the cookie samesite cookie attribute will not be set, but if none the attribute will be set and is a breaking change compared to before where none did not render the attribute. This was due to a known issue in Safari. Co-Authored-By: Arve Knudsen <arve.knudsen@gmail.com> Co-Authored-By: Diana Payton <52059945+oddlittlebird@users.noreply.github.com> Fixes #19847
This commit is contained in:

committed by
GitHub

parent
492912845f
commit
a1579283a6
@ -256,12 +256,12 @@ func TestMiddlewareContext(t *testing.T) {
|
||||
maxAge := (maxAgeHours + time.Hour).Seconds()
|
||||
|
||||
sameSitePolicies := []http.SameSite{
|
||||
http.SameSiteDefaultMode,
|
||||
http.SameSiteNoneMode,
|
||||
http.SameSiteLaxMode,
|
||||
http.SameSiteStrictMode,
|
||||
}
|
||||
for _, sameSitePolicy := range sameSitePolicies {
|
||||
setting.CookieSameSite = sameSitePolicy
|
||||
setting.CookieSameSiteMode = sameSitePolicy
|
||||
expectedCookie := &http.Cookie{
|
||||
Name: setting.LoginCookieName,
|
||||
Value: "rotated",
|
||||
@ -269,9 +269,7 @@ func TestMiddlewareContext(t *testing.T) {
|
||||
HttpOnly: true,
|
||||
MaxAge: int(maxAge),
|
||||
Secure: setting.CookieSecure,
|
||||
}
|
||||
if sameSitePolicy != http.SameSiteDefaultMode {
|
||||
expectedCookie.SameSite = sameSitePolicy
|
||||
SameSite: sameSitePolicy,
|
||||
}
|
||||
|
||||
sc.fakeReq("GET", "/").exec()
|
||||
@ -287,6 +285,22 @@ func TestMiddlewareContext(t *testing.T) {
|
||||
So(sc.resp.Header().Get("Set-Cookie"), ShouldEqual, expectedCookie.String())
|
||||
})
|
||||
}
|
||||
|
||||
Convey("Should not set cookie with SameSite attribute when setting.CookieSameSiteDisabled is true", func() {
|
||||
setting.CookieSameSiteDisabled = true
|
||||
setting.CookieSameSiteMode = http.SameSiteLaxMode
|
||||
expectedCookie := &http.Cookie{
|
||||
Name: setting.LoginCookieName,
|
||||
Value: "rotated",
|
||||
Path: setting.AppSubUrl + "/",
|
||||
HttpOnly: true,
|
||||
MaxAge: int(maxAge),
|
||||
Secure: setting.CookieSecure,
|
||||
}
|
||||
|
||||
sc.fakeReq("GET", "/").exec()
|
||||
So(sc.resp.Header().Get("Set-Cookie"), ShouldEqual, expectedCookie.String())
|
||||
})
|
||||
})
|
||||
|
||||
middlewareScenario(t, "Invalid/expired auth token in cookie", func(sc *scenarioContext) {
|
||||
|
Reference in New Issue
Block a user