mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Extract constant names out for the ReverseProxy and Basic authentication methods (#17735)
In order to reduce load on the GC extract out the constant names of the Basic and ReverseProxy methods. As mentioned in https://github.com/go-gitea/gitea/pull/15119#discussion_r730352176 Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
		@@ -245,7 +245,7 @@ func APIAuth(authMethod auth.Method) func(*APIContext) {
 | 
				
			|||||||
		// Get user from session if logged in.
 | 
							// Get user from session if logged in.
 | 
				
			||||||
		ctx.User = authMethod.Verify(ctx.Req, ctx.Resp, ctx, ctx.Session)
 | 
							ctx.User = authMethod.Verify(ctx.Req, ctx.Resp, ctx, ctx.Session)
 | 
				
			||||||
		if ctx.User != nil {
 | 
							if ctx.User != nil {
 | 
				
			||||||
			ctx.IsBasicAuth = ctx.Data["AuthedMethod"].(string) == new(auth.Basic).Name()
 | 
								ctx.IsBasicAuth = ctx.Data["AuthedMethod"].(string) == auth.BasicMethodName
 | 
				
			||||||
			ctx.IsSigned = true
 | 
								ctx.IsSigned = true
 | 
				
			||||||
			ctx.Data["IsSigned"] = ctx.IsSigned
 | 
								ctx.Data["IsSigned"] = ctx.IsSigned
 | 
				
			||||||
			ctx.Data["SignedUser"] = ctx.User
 | 
								ctx.Data["SignedUser"] = ctx.User
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -614,7 +614,7 @@ func Auth(authMethod auth.Method) func(*Context) {
 | 
				
			|||||||
	return func(ctx *Context) {
 | 
						return func(ctx *Context) {
 | 
				
			||||||
		ctx.User = authMethod.Verify(ctx.Req, ctx.Resp, ctx, ctx.Session)
 | 
							ctx.User = authMethod.Verify(ctx.Req, ctx.Resp, ctx, ctx.Session)
 | 
				
			||||||
		if ctx.User != nil {
 | 
							if ctx.User != nil {
 | 
				
			||||||
			ctx.IsBasicAuth = ctx.Data["AuthedMethod"].(string) == new(auth.Basic).Name()
 | 
								ctx.IsBasicAuth = ctx.Data["AuthedMethod"].(string) == auth.BasicMethodName
 | 
				
			||||||
			ctx.IsSigned = true
 | 
								ctx.IsSigned = true
 | 
				
			||||||
			ctx.Data["IsSigned"] = ctx.IsSigned
 | 
								ctx.Data["IsSigned"] = ctx.IsSigned
 | 
				
			||||||
			ctx.Data["SignedUser"] = ctx.User
 | 
								ctx.Data["SignedUser"] = ctx.User
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -217,7 +217,7 @@ func reqExploreSignIn() func(ctx *context.APIContext) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
func reqBasicOrRevProxyAuth() func(ctx *context.APIContext) {
 | 
					func reqBasicOrRevProxyAuth() func(ctx *context.APIContext) {
 | 
				
			||||||
	return func(ctx *context.APIContext) {
 | 
						return func(ctx *context.APIContext) {
 | 
				
			||||||
		if ctx.IsSigned && setting.Service.EnableReverseProxyAuth && ctx.Data["AuthedMethod"].(string) == new(auth.ReverseProxy).Name() {
 | 
							if ctx.IsSigned && setting.Service.EnableReverseProxyAuth && ctx.Data["AuthedMethod"].(string) == auth.ReverseProxyMethodName {
 | 
				
			||||||
			return
 | 
								return
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if !ctx.Context.IsBasicAuth {
 | 
							if !ctx.Context.IsBasicAuth {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,6 +23,9 @@ var (
 | 
				
			|||||||
	_ Named  = &Basic{}
 | 
						_ Named  = &Basic{}
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// BasicMethodName is the constant name of the basic authentication method
 | 
				
			||||||
 | 
					const BasicMethodName = "basic"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Basic implements the Auth interface and authenticates requests (API requests
 | 
					// Basic implements the Auth interface and authenticates requests (API requests
 | 
				
			||||||
// only) by looking for Basic authentication data or "x-oauth-basic" token in the "Authorization"
 | 
					// only) by looking for Basic authentication data or "x-oauth-basic" token in the "Authorization"
 | 
				
			||||||
// header.
 | 
					// header.
 | 
				
			||||||
@@ -31,7 +34,7 @@ type Basic struct {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// Name represents the name of auth method
 | 
					// Name represents the name of auth method
 | 
				
			||||||
func (b *Basic) Name() string {
 | 
					func (b *Basic) Name() string {
 | 
				
			||||||
	return "basic"
 | 
						return BasicMethodName
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Verify extracts and validates Basic data (username and password/token) from the
 | 
					// Verify extracts and validates Basic data (username and password/token) from the
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,6 +24,9 @@ var (
 | 
				
			|||||||
	_ Named  = &ReverseProxy{}
 | 
						_ Named  = &ReverseProxy{}
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ReverseProxyMethodName is the constant name of the ReverseProxy authentication method
 | 
				
			||||||
 | 
					const ReverseProxyMethodName = "reverse_proxy"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ReverseProxy implements the Auth interface, but actually relies on
 | 
					// ReverseProxy implements the Auth interface, but actually relies on
 | 
				
			||||||
// a reverse proxy for authentication of users.
 | 
					// a reverse proxy for authentication of users.
 | 
				
			||||||
// On successful authentication the proxy is expected to populate the username in the
 | 
					// On successful authentication the proxy is expected to populate the username in the
 | 
				
			||||||
@@ -43,7 +46,7 @@ func (r *ReverseProxy) getUserName(req *http.Request) string {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// Name represents the name of auth method
 | 
					// Name represents the name of auth method
 | 
				
			||||||
func (r *ReverseProxy) Name() string {
 | 
					func (r *ReverseProxy) Name() string {
 | 
				
			||||||
	return "reverse_proxy"
 | 
						return ReverseProxyMethodName
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Verify extracts the username from the "setting.ReverseProxyAuthUser" header
 | 
					// Verify extracts the username from the "setting.ReverseProxyAuthUser" header
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user