From a1419ec2f4d1b566b1c6820a9ee55d8d9d30ae06 Mon Sep 17 00:00:00 2001 From: ginuerzh Date: Tue, 19 Sep 2023 22:19:21 +0800 Subject: [PATCH] add id for auther --- auth/auth.go | 16 ++++++++++------ go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/auth/auth.go b/auth/auth.go index c0d4bf3..75aed07 100644 --- a/auth/auth.go +++ b/auth/auth.go @@ -4,7 +4,7 @@ import "context" // Authenticator is an interface for user authentication. type Authenticator interface { - Authenticate(ctx context.Context, user, password string) bool + Authenticate(ctx context.Context, user, password string) (ok bool, id string) } type authenticatorGroup struct { @@ -17,14 +17,18 @@ func AuthenticatorGroup(authers ...Authenticator) Authenticator { } } -func (p *authenticatorGroup) Authenticate(ctx context.Context, user, password string) bool { +func (p *authenticatorGroup) Authenticate(ctx context.Context, user, password string) (bool, string) { if len(p.authers) == 0 { - return true + return false, "" } for _, auther := range p.authers { - if auther != nil && auther.Authenticate(ctx, user, password) { - return true + if auther == nil { + continue + } + + if ok, id := auther.Authenticate(ctx, user, password); ok { + return ok, id } } - return false + return false, "" } diff --git a/go.mod b/go.mod index 0a7ac58..c599e5e 100644 --- a/go.mod +++ b/go.mod @@ -2,4 +2,4 @@ module github.com/go-gost/core go 1.18 -require golang.org/x/sys v0.6.0 +require golang.org/x/sys v0.12.0 diff --git a/go.sum b/go.sum index 789d7a1..63a0250 100644 --- a/go.sum +++ b/go.sum @@ -1,2 +1,2 @@ -golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=