switch to golang-jwt (#993)

Signed-off-by: Long Dai <long0dai@foxmail.com>

Co-authored-by: Yaron Schneider <yaronsc@microsoft.com>
This commit is contained in:
Long Dai 2021-07-09 01:49:44 +08:00 committed by GitHub
parent 4412ba019f
commit a538b80452
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 16 deletions

View File

@ -10,7 +10,7 @@ import (
"time"
"github.com/dapr/kit/logger"
jwt "github.com/dgrijalva/jwt-go/v4"
"github.com/golang-jwt/jwt"
)
// The "issued at" timestamp in the JWT must be within one hour from the
@ -57,7 +57,7 @@ func (a *authorizationBuilder) generateAuthorizationHeader() (string, error) {
now := time.Now()
claims := jwt.StandardClaims{
IssuedAt: jwt.Now(),
IssuedAt: time.Now().Unix(),
Issuer: a.teamID,
}
token := jwt.NewWithClaims(jwt.SigningMethodES256, claims)

View File

@ -16,7 +16,7 @@ import (
"github.com/dapr/components-contrib/bindings"
"github.com/dapr/kit/logger"
"github.com/dgrijalva/jwt-go/v4"
"github.com/golang-jwt/jwt"
"github.com/pkg/errors"
)
@ -173,7 +173,7 @@ func (s *SignalR) Invoke(req *bindings.InvokeRequest) (*bindings.InvokeResponse,
}
func (s *SignalR) ensureValidToken(url string) (string, error) {
now := jwt.Now()
now := time.Now()
if existing, ok := s.tokens[url]; ok {
if existing.token != "" && now.Before(existing.expiration) {
@ -182,16 +182,14 @@ func (s *SignalR) ensureValidToken(url string) (string, error) {
}
expiration := now.Add(1 * time.Hour)
audience, err := jwt.ParseClaimStrings(url)
if err != nil {
return "", err
}
claims := &jwt.StandardClaims{
ExpiresAt: &jwt.Time{
Time: expiration,
},
Audience: audience,
ExpiresAt: expiration.Unix(),
Audience: url,
}
if err := claims.Valid(); err != nil {
return "", err
}
token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)

2
go.mod
View File

@ -46,7 +46,6 @@ require (
github.com/denisenkom/go-mssqldb v0.0.0-20191128021309-1d7a30a10f73
github.com/dghubble/go-twitter v0.0.0-20190719072343-39e5462e111f
github.com/dghubble/oauth1 v0.6.0
github.com/dgrijalva/jwt-go/v4 v4.0.0-preview1
github.com/didip/tollbooth v4.0.2+incompatible
github.com/dnaeon/go-vcr v1.1.0 // indirect
github.com/eapache/go-resiliency v1.2.0 // indirect
@ -62,6 +61,7 @@ require (
github.com/go-redis/redis/v8 v8.8.0
github.com/go-sql-driver/mysql v1.5.0
github.com/gocql/gocql v0.0.0-20210515062232-b7ef815b4556
github.com/golang-jwt/jwt v3.2.1+incompatible
github.com/golang/mock v1.5.0
github.com/golang/protobuf v1.4.3
github.com/golang/snappy v0.0.3 // indirect

5
go.sum
View File

@ -282,10 +282,7 @@ github.com/dghubble/oauth1 v0.6.0 h1:m1yC01Ohc/eF38jwZ8JUjL1a+XHHXtGQgK+MxQbmSx0
github.com/dghubble/oauth1 v0.6.0/go.mod h1:8pFdfPkv/jr8mkChVbNVuJ0suiHe278BtWI4Tk1ujxk=
github.com/dghubble/sling v1.3.0 h1:pZHjCJq4zJvc6qVQ5wN1jo5oNZlNE0+8T/h0XeXBUKU=
github.com/dghubble/sling v1.3.0/go.mod h1:XXShWaBWKzNLhu2OxikSNFrlsvowtz4kyRuXUG7oQKY=
github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
github.com/dgrijalva/jwt-go/v4 v4.0.0-preview1 h1:CaO/zOnF8VvUfEbhRatPcwKVWamvbYd8tQGRWacE9kU=
github.com/dgrijalva/jwt-go/v4 v4.0.0-preview1/go.mod h1:+hnT3ywWDTAFrW5aE+u2Sa/wT555ZqwoCS+pk3p6ry4=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
@ -432,6 +429,8 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptGaCkuDUx6wNykzzlUixGxvkme+H/lnzb+A=
github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c=
github.com/golang-jwt/jwt v3.2.1+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I=
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY=
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=