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:
parent
931d0cf854
commit
f8ec43dbc7
5 changed files with 11 additions and 5 deletions
|
@ -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 a new issue