mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
chore: move jwt models into auth/jwt (#61862)
* chore: move jwt models into auth/jwt
This commit is contained in:
@@ -6,9 +6,9 @@ import (
|
||||
"fmt"
|
||||
"net"
|
||||
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/models/usertoken"
|
||||
"github.com/grafana/grafana/pkg/registry"
|
||||
"github.com/grafana/grafana/pkg/services/auth/jwt"
|
||||
"github.com/grafana/grafana/pkg/services/quota"
|
||||
"github.com/grafana/grafana/pkg/services/user"
|
||||
)
|
||||
@@ -74,4 +74,4 @@ type UserTokenBackgroundService interface {
|
||||
registry.BackgroundService
|
||||
}
|
||||
|
||||
type JWTVerifierService = models.JWTService
|
||||
type JWTVerifierService = jwt.JWTService
|
||||
|
||||
@@ -10,7 +10,6 @@ import (
|
||||
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
"github.com/grafana/grafana/pkg/infra/remotecache"
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
)
|
||||
|
||||
@@ -66,7 +65,7 @@ func sanitizeJWT(jwtToken string) string {
|
||||
return strings.ReplaceAll(jwtToken, string(base64.StdPadding), "")
|
||||
}
|
||||
|
||||
func (s *AuthService) Verify(ctx context.Context, strToken string) (models.JWTClaims, error) {
|
||||
func (s *AuthService) Verify(ctx context.Context, strToken string) (JWTClaims, error) {
|
||||
s.log.Debug("Parsing JSON Web Token")
|
||||
|
||||
strToken = sanitizeJWT(strToken)
|
||||
@@ -85,7 +84,7 @@ func (s *AuthService) Verify(ctx context.Context, strToken string) (models.JWTCl
|
||||
|
||||
s.log.Debug("Trying to verify JSON Web Token using a key")
|
||||
|
||||
var claims models.JWTClaims
|
||||
var claims JWTClaims
|
||||
for _, key := range keys {
|
||||
if err = token.Claims(key, &claims); err == nil {
|
||||
break
|
||||
|
||||
27
pkg/services/auth/jwt/jwt.go
Normal file
27
pkg/services/auth/jwt/jwt.go
Normal file
@@ -0,0 +1,27 @@
|
||||
package jwt
|
||||
|
||||
import (
|
||||
"context"
|
||||
)
|
||||
|
||||
type JWTClaims map[string]interface{}
|
||||
|
||||
type JWTService interface {
|
||||
Verify(ctx context.Context, strToken string) (JWTClaims, error)
|
||||
}
|
||||
|
||||
type FakeJWTService struct {
|
||||
VerifyProvider func(context.Context, string) (JWTClaims, error)
|
||||
}
|
||||
|
||||
func (s *FakeJWTService) Verify(ctx context.Context, token string) (JWTClaims, error) {
|
||||
return s.VerifyProvider(ctx, token)
|
||||
}
|
||||
|
||||
func NewFakeJWTService() *FakeJWTService {
|
||||
return &FakeJWTService{
|
||||
VerifyProvider: func(ctx context.Context, token string) (JWTClaims, error) {
|
||||
return JWTClaims{}, nil
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -7,8 +7,6 @@ import (
|
||||
"time"
|
||||
|
||||
"gopkg.in/square/go-jose.v2/jwt"
|
||||
|
||||
"github.com/grafana/grafana/pkg/models"
|
||||
)
|
||||
|
||||
func (s *AuthService) initClaimExpectations() error {
|
||||
@@ -54,7 +52,7 @@ func (s *AuthService) initClaimExpectations() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *AuthService) validateClaims(claims models.JWTClaims) error {
|
||||
func (s *AuthService) validateClaims(claims JWTClaims) error {
|
||||
var registeredClaims jwt.Claims
|
||||
for key, value := range claims {
|
||||
switch key {
|
||||
|
||||
Reference in New Issue
Block a user