verifier

package
v1.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 28, 2026 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CachingVerifyStrategy

type CachingVerifyStrategy struct {
	// contains filtered or unexported fields
}

CachingVerifyStrategy 缓存验证结果的策略。

func NewCachingVerifyStrategy

func NewCachingVerifyStrategy(delegate VerifyStrategy, cache VerifyResultCache, ttl time.Duration) *CachingVerifyStrategy

NewCachingVerifyStrategy 创建缓存策略。

func (*CachingVerifyStrategy) Name

func (s *CachingVerifyStrategy) Name() string

func (*CachingVerifyStrategy) Verify

func (s *CachingVerifyStrategy) Verify(ctx context.Context, token string, opts *VerifyOptions) (*VerifyResult, error)

type FallbackVerifyStrategy

type FallbackVerifyStrategy struct {
	// contains filtered or unexported fields
}

FallbackVerifyStrategy 降级策略。

func NewFallbackVerifyStrategy

func NewFallbackVerifyStrategy(primary, fallback VerifyStrategy) *FallbackVerifyStrategy

NewFallbackVerifyStrategy 创建降级策略。

func (*FallbackVerifyStrategy) Name

func (s *FallbackVerifyStrategy) Name() string

func (*FallbackVerifyStrategy) Verify

func (s *FallbackVerifyStrategy) Verify(ctx context.Context, token string, opts *VerifyOptions) (*VerifyResult, error)

type LocalStrategyOption

type LocalStrategyOption func(*LocalVerifyStrategy)

LocalStrategyOption 本地策略配置选项。

func WithLocalConfig

func WithLocalConfig(cfg *config.TokenVerifyConfig) LocalStrategyOption

WithLocalConfig 设置验证配置。

type LocalVerifyStrategy

type LocalVerifyStrategy struct {
	// contains filtered or unexported fields
}

LocalVerifyStrategy 本地验证策略(使用 JWKS)。

func NewLocalVerifyStrategy

func NewLocalVerifyStrategy(jwksManager *authjwks.JWKSManager, opts ...LocalStrategyOption) *LocalVerifyStrategy

NewLocalVerifyStrategy 创建本地验证策略。

func (*LocalVerifyStrategy) Name

func (s *LocalVerifyStrategy) Name() string

func (*LocalVerifyStrategy) Verify

func (s *LocalVerifyStrategy) Verify(ctx context.Context, tokenString string, opts *VerifyOptions) (*VerifyResult, error)

type RemoteVerifyStrategy

type RemoteVerifyStrategy struct {
	// contains filtered or unexported fields
}

RemoteVerifyStrategy 远程验证策略(调用 IAM 服务)。

func NewRemoteVerifyStrategy

func NewRemoteVerifyStrategy(authClient VerifyTokenClient, cfg *config.TokenVerifyConfig) *RemoteVerifyStrategy

NewRemoteVerifyStrategy 创建远程验证策略。

func (*RemoteVerifyStrategy) Name

func (s *RemoteVerifyStrategy) Name() string

func (*RemoteVerifyStrategy) Verify

func (s *RemoteVerifyStrategy) Verify(ctx context.Context, tokenString string, opts *VerifyOptions) (*VerifyResult, error)

type StrategySelector

type StrategySelector struct {
	// contains filtered or unexported fields
}

StrategySelector 策略选择器,根据条件选择合适的验证策略。

func NewStrategySelector

func NewStrategySelector(cfg *config.TokenVerifyConfig, jwksManager *authjwks.JWKSManager, authClient VerifyTokenClient) *StrategySelector

NewStrategySelector 创建策略选择器。

func (*StrategySelector) FallbackStrategy

func (s *StrategySelector) FallbackStrategy() (*FallbackVerifyStrategy, error)

FallbackStrategy 显式获取降级策略。

func (*StrategySelector) LocalStrategy

func (s *StrategySelector) LocalStrategy() (*LocalVerifyStrategy, error)

LocalStrategy 显式获取本地策略。

func (*StrategySelector) RemoteStrategy

func (s *StrategySelector) RemoteStrategy() (*RemoteVerifyStrategy, error)

RemoteStrategy 显式获取远程策略。

func (*StrategySelector) Select

func (s *StrategySelector) Select() (VerifyStrategy, error)

Select 根据配置选择最佳策略。

type TokenClaims

type TokenClaims struct {
	TokenID   string
	Subject   string
	SessionID string
	Issuer    string
	Audience  []string
	ExpiresAt time.Time
	IssuedAt  time.Time
	NotBefore time.Time
	UserID    string
	AccountID string
	TenantID  string
	Roles     []string
	Scopes    []string
	TokenType string
	AMR       []string
	Extra     map[string]interface{}
}

TokenClaims Token 声明。

type TokenVerifier

type TokenVerifier struct {
	// contains filtered or unexported fields
}

TokenVerifier Token 验证器(使用策略模式)。

func NewTokenVerifier

func NewTokenVerifier(cfg *config.TokenVerifyConfig, jwksManager *authjwks.JWKSManager, authClient VerifyTokenClient) (*TokenVerifier, error)

NewTokenVerifier 创建 Token 验证器。

func NewTokenVerifierWithStrategy

func NewTokenVerifierWithStrategy(strategy VerifyStrategy, opts ...TokenVerifierOption) *TokenVerifier

NewTokenVerifierWithStrategy 使用自定义策略创建验证器。

func (*TokenVerifier) Strategy

func (v *TokenVerifier) Strategy() VerifyStrategy

Strategy 返回当前使用的策略。

func (*TokenVerifier) Verify

func (v *TokenVerifier) Verify(ctx context.Context, token string, opts *VerifyOptions) (*VerifyResult, error)

Verify 验证 Token。

type TokenVerifierOption

type TokenVerifierOption func(*TokenVerifier)

TokenVerifierOption 验证器配置选项。

func WithVerifyConfig

func WithVerifyConfig(cfg *config.TokenVerifyConfig) TokenVerifierOption

WithVerifyConfig 设置验证配置。

func WithVerifyStrategy

func WithVerifyStrategy(strategy VerifyStrategy) TokenVerifierOption

WithVerifyStrategy 设置验证策略。

type VerifyMetadata

type VerifyMetadata struct {
	TokenType authnv1.TokenType
	Status    authnv1.TokenStatus
	IssuedAt  time.Time
	ExpiresAt time.Time
}

VerifyMetadata Token 验证元数据。

type VerifyOptions

type VerifyOptions struct {
	ForceRemote      bool
	IncludeMetadata  bool
	ExpectedAudience []string
	ExpectedIssuer   string
}

VerifyOptions 验证选项。

type VerifyResult

type VerifyResult struct {
	Valid    bool
	Claims   *TokenClaims
	Metadata *VerifyMetadata
	RawToken jwt.Token
}

VerifyResult 验证结果。

type VerifyResultCache

type VerifyResultCache interface {
	Get(token string) (*VerifyResult, bool)
	Set(token string, result *VerifyResult, ttl time.Duration)
}

VerifyResultCache 验证结果缓存接口。

type VerifyStrategy

type VerifyStrategy interface {
	Verify(ctx context.Context, token string, opts *VerifyOptions) (*VerifyResult, error)
	Name() string
}

VerifyStrategy 定义 Token 验证策略接口。

type VerifyTokenClient

type VerifyTokenClient interface {
	VerifyToken(context.Context, *authnv1.VerifyTokenRequest) (*authnv1.VerifyTokenResponse, error)
}

VerifyTokenClient 定义远程验证所需的最小客户端能力。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL