From 500d2cc223d7d97eda5046a02913e40ce9d62d45 Mon Sep 17 00:00:00 2001 From: xmdhs Date: Mon, 23 Oct 2023 21:44:57 +0800 Subject: [PATCH] fix nil pointer --- service/user.go | 4 ++-- service/utils/auth.go | 4 ++-- service/yggdrasil/user.go | 2 +- utils/sign/rsa_test.go | 24 ++++++++---------------- 4 files changed, 13 insertions(+), 21 deletions(-) diff --git a/service/user.go b/service/user.go index f61445e..7a7717a 100644 --- a/service/user.go +++ b/service/user.go @@ -96,7 +96,7 @@ func (w *WebService) Reg(ctx context.Context, u model.UserReg, ipPrefix, ip stri if err != nil { return model.LoginRep{}, fmt.Errorf("Reg: %w", err) } - jwt, err := utilsService.CreateToken(ctx, du, w.client, w.cache, w.prikey, "web") + jwt, err := utilsService.CreateToken(ctx, du, w.client, w.cache, w.prikey, "web", userUuid) if err != nil { return model.LoginRep{}, fmt.Errorf("Login: %w", err) } @@ -125,7 +125,7 @@ func (w *WebService) Login(ctx context.Context, l model.Login, ip string) (model if err != nil { return model.LoginRep{}, fmt.Errorf("Login: %w", err) } - jwt, err := utilsService.CreateToken(ctx, u, w.client, w.cache, w.prikey, "web") + jwt, err := utilsService.CreateToken(ctx, u, w.client, w.cache, w.prikey, "web", u.Edges.Profile.UUID) if err != nil { return model.LoginRep{}, fmt.Errorf("Login: %w", err) } diff --git a/service/utils/auth.go b/service/utils/auth.go index c8dac03..7a15f5d 100644 --- a/service/utils/auth.go +++ b/service/utils/auth.go @@ -82,7 +82,7 @@ func Auth(ctx context.Context, t yggdrasil.ValidateToken, client *ent.Client, c return claims, nil } -func CreateToken(ctx context.Context, u *ent.User, client *ent.Client, cache cache.Cache, jwtKey *rsa.PrivateKey, clientToken string) (string, error) { +func CreateToken(ctx context.Context, u *ent.User, client *ent.Client, cache cache.Cache, jwtKey *rsa.PrivateKey, clientToken string, uuid string) (string, error) { if IsDisable(u.State) { return "", fmt.Errorf("CreateToken: %w", ErrUserDisable) } @@ -112,7 +112,7 @@ func CreateToken(ctx context.Context, u *ent.User, client *ent.Client, cache cac if err != nil { return "", fmt.Errorf("CreateToken: %w", err) } - t, err := NewJwtToken(jwtKey, strconv.FormatUint(utoken.TokenID, 10), clientToken, u.Edges.Profile.UUID, u.ID) + t, err := NewJwtToken(jwtKey, strconv.FormatUint(utoken.TokenID, 10), clientToken, uuid, u.ID) if err != nil { return "", fmt.Errorf("CreateToken: %w", err) } diff --git a/service/yggdrasil/user.go b/service/yggdrasil/user.go index 284d812..92c7fb7 100644 --- a/service/yggdrasil/user.go +++ b/service/yggdrasil/user.go @@ -67,7 +67,7 @@ func (y *Yggdrasil) Authenticate(cxt context.Context, auth yggdrasil.Authenticat clientToken = strings.ReplaceAll(uuid.New().String(), "-", "") } - jwts, err := sutils.CreateToken(cxt, u, y.client, y.cache, y.prikey, clientToken) + jwts, err := sutils.CreateToken(cxt, u, y.client, y.cache, y.prikey, clientToken, u.Edges.Profile.UUID) if err != nil { return yggdrasil.Token{}, fmt.Errorf("Authenticate: %w", err) } diff --git a/utils/sign/rsa_test.go b/utils/sign/rsa_test.go index 972ee08..2595260 100644 --- a/utils/sign/rsa_test.go +++ b/utils/sign/rsa_test.go @@ -8,7 +8,6 @@ import ( "crypto/x509" "encoding/base64" "encoding/pem" - "fmt" "os" "testing" @@ -23,27 +22,20 @@ func TestAuthlibSign(t *testing.T) { } as := NewAuthlibSignWithKey(rsa2048) pri, err := as.GetPriKey() - if err != nil { - t.Fatal(err) - } + require.Nil(t, err) + require.NotEmpty(t, pri) pub, err := as.GetPKIXPubKey() - if err != nil { - t.Fatal(err) - } + require.Nil(t, err) + require.NotEmpty(t, pub) + sign, err := as.Sign([]byte("xmdhs")) - if err != nil { - t.Fatal(err) - } - fmt.Println(pri) - fmt.Println(pub) - fmt.Println(sign) + require.Nil(t, err) hashed := sha1.Sum([]byte("xmdhs")) err = rsa.VerifyPKCS1v15(&as.key.PublicKey, crypto.SHA1, hashed[:], lo.Must(base64.StdEncoding.DecodeString(sign))) - if err != nil { - t.Fatal(err) - } + require.Nil(t, err) + } func TestLittleskinSign(t *testing.T) {