mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-03 21:08:25 +00:00 
			
		
		
		
	push + pull now works with reverse proxy + basic auth on apache 2.4
This commit is contained in:
		
				
					committed by
					
						
						Kim "BKC" Carlbäcker
					
				
			
			
				
	
			
			
			
						parent
						
							937b4b5aa1
						
					
				
				
					commit
					37eec6c9b7
				
			@@ -83,6 +83,18 @@ func HTTP(ctx *context.Context) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	// check access
 | 
						// check access
 | 
				
			||||||
	if askAuth {
 | 
						if askAuth {
 | 
				
			||||||
 | 
							if setting.Service.EnableReverseProxyAuth {
 | 
				
			||||||
 | 
								authUsername = ctx.Req.Header.Get(setting.ReverseProxyAuthUser)
 | 
				
			||||||
 | 
								if len(authUsername) == 0 {
 | 
				
			||||||
 | 
									ctx.HandleText(401, "reverse proxy login error. authUsername empty")
 | 
				
			||||||
 | 
									return
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								authUser, err = models.GetUserByName(authUsername)
 | 
				
			||||||
 | 
								if err != nil {
 | 
				
			||||||
 | 
									ctx.HandleText(401, "reverse proxy login error, got error while running GetUserByName")
 | 
				
			||||||
 | 
									return
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}else{
 | 
				
			||||||
			authHead := ctx.Req.Header.Get("Authorization")
 | 
								authHead := ctx.Req.Header.Get("Authorization")
 | 
				
			||||||
			if len(authHead) == 0 {
 | 
								if len(authHead) == 0 {
 | 
				
			||||||
				ctx.Resp.Header().Set("WWW-Authenticate", "Basic realm=\".\"")
 | 
									ctx.Resp.Header().Set("WWW-Authenticate", "Basic realm=\".\"")
 | 
				
			||||||
@@ -165,6 +177,7 @@ func HTTP(ctx *context.Context) {
 | 
				
			|||||||
				}
 | 
									}
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	callback := func(rpc string, input []byte) {
 | 
						callback := func(rpc string, input []byte) {
 | 
				
			||||||
		if rpc != "receive-pack" || isWiki {
 | 
							if rpc != "receive-pack" || isWiki {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user