mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-03 20:36:07 +01:00 
			
		
		
		
	Add SameSite setting for cookies (#14900)
Add SameSite setting for cookies and rationalise the cookie setting code. Switches SameSite to Lax by default. There is a possible future extension of differentiating which cookies could be set at Strict by default but that is for a future PR. Fix #5583 Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
		@@ -9,6 +9,7 @@ import (
 | 
			
		||||
	"code.gitea.io/gitea/models"
 | 
			
		||||
	"code.gitea.io/gitea/modules/log"
 | 
			
		||||
	"code.gitea.io/gitea/modules/setting"
 | 
			
		||||
	"code.gitea.io/gitea/modules/web/middleware"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// ToggleOptions contains required or check options
 | 
			
		||||
@@ -41,7 +42,7 @@ func Toggle(options *ToggleOptions) func(ctx *Context) {
 | 
			
		||||
					ctx.Data["Title"] = ctx.Tr("auth.must_change_password")
 | 
			
		||||
					ctx.Data["ChangePasscodeLink"] = setting.AppSubURL + "/user/change_password"
 | 
			
		||||
					if ctx.Req.URL.Path != "/user/events" {
 | 
			
		||||
						ctx.SetCookie("redirect_to", setting.AppSubURL+ctx.Req.URL.RequestURI(), 0, setting.AppSubURL)
 | 
			
		||||
						middleware.SetRedirectToCookie(ctx.Resp, setting.AppSubURL+ctx.Req.URL.RequestURI())
 | 
			
		||||
					}
 | 
			
		||||
					ctx.Redirect(setting.AppSubURL + "/user/settings/change_password")
 | 
			
		||||
					return
 | 
			
		||||
@@ -69,7 +70,7 @@ func Toggle(options *ToggleOptions) func(ctx *Context) {
 | 
			
		||||
		if options.SignInRequired {
 | 
			
		||||
			if !ctx.IsSigned {
 | 
			
		||||
				if ctx.Req.URL.Path != "/user/events" {
 | 
			
		||||
					ctx.SetCookie("redirect_to", setting.AppSubURL+ctx.Req.URL.RequestURI(), 0, setting.AppSubURL)
 | 
			
		||||
					middleware.SetRedirectToCookie(ctx.Resp, setting.AppSubURL+ctx.Req.URL.RequestURI())
 | 
			
		||||
				}
 | 
			
		||||
				ctx.Redirect(setting.AppSubURL + "/user/login")
 | 
			
		||||
				return
 | 
			
		||||
@@ -84,7 +85,7 @@ func Toggle(options *ToggleOptions) func(ctx *Context) {
 | 
			
		||||
		if !options.SignOutRequired && !ctx.IsSigned &&
 | 
			
		||||
			len(ctx.GetCookie(setting.CookieUserName)) > 0 {
 | 
			
		||||
			if ctx.Req.URL.Path != "/user/events" {
 | 
			
		||||
				ctx.SetCookie("redirect_to", setting.AppSubURL+ctx.Req.URL.RequestURI(), 0, setting.AppSubURL)
 | 
			
		||||
				middleware.SetRedirectToCookie(ctx.Resp, setting.AppSubURL+ctx.Req.URL.RequestURI())
 | 
			
		||||
			}
 | 
			
		||||
			ctx.Redirect(setting.AppSubURL + "/user/login")
 | 
			
		||||
			return
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user