Fix incorrect cookie path for AppSubURL (#29534)
Regression of #24107 (cherry picked from commit 44398e405ffe297997c6b9c8dbb97f966926b65a)
This commit is contained in:
		
					parent
					
						
							
								318634ef74
							
						
					
				
			
			
				commit
				
					
						ff7a032c74
					
				
			
		
					 2 changed files with 6 additions and 2 deletions
				
			
		|  | @ -21,7 +21,7 @@ var SessionConfig = struct { | |||
| 	ProviderConfig string | ||||
| 	// Cookie name to save session ID. Default is "MacaronSession". | ||||
| 	CookieName string | ||||
| 	// Cookie path to store. Default is "/". HINT: there was a bug, the old value doesn't have trailing slash, and could be empty "". | ||||
| 	// Cookie path to store. Default is "/". | ||||
| 	CookiePath string | ||||
| 	// GC interval time in seconds. Default is 3600. | ||||
| 	Gclifetime int64 | ||||
|  | @ -49,7 +49,10 @@ func loadSessionFrom(rootCfg ConfigProvider) { | |||
| 		SessionConfig.ProviderConfig = path.Join(AppWorkPath, SessionConfig.ProviderConfig) | ||||
| 	} | ||||
| 	SessionConfig.CookieName = sec.Key("COOKIE_NAME").MustString("i_like_gitea") | ||||
| 	SessionConfig.CookiePath = AppSubURL + "/" // there was a bug, old code only set CookePath=AppSubURL, no trailing slash | ||||
| 	SessionConfig.CookiePath = AppSubURL | ||||
| 	if SessionConfig.CookiePath == "" { | ||||
| 		SessionConfig.CookiePath = "/" | ||||
| 	} | ||||
| 	SessionConfig.Secure = sec.Key("COOKIE_SECURE").MustBool(strings.HasPrefix(strings.ToLower(AppURL), "https://")) | ||||
| 	SessionConfig.Gclifetime = sec.Key("GC_INTERVAL_TIME").MustInt64(86400) | ||||
| 	SessionConfig.Maxlifetime = sec.Key("SESSION_LIFE_TIME").MustInt64(86400) | ||||
|  |  | |||
|  | @ -38,6 +38,7 @@ func ProtocolMiddlewares() (handlers []any) { | |||
| 		}) | ||||
| 	}) | ||||
| 
 | ||||
| 	// wrap the request and response, use the process context and add it to the process manager | ||||
| 	handlers = append(handlers, func(next http.Handler) http.Handler { | ||||
| 		return http.HandlerFunc(func(resp http.ResponseWriter, req *http.Request) { | ||||
| 			ctx, _, finished := process.GetManager().AddTypedContext(req.Context(), fmt.Sprintf("%s: %s", req.Method, req.RequestURI), process.RequestProcessType, true) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 wxiaoguang
				wxiaoguang