Versions in this module Expand all Collapse all v0 v0.7.0 Apr 22, 2024 v0.6.0 Jan 11, 2024 Changes in this version + const RedisKeyRequestID + const RedisKeySignKey + func InitPolicy(enforcer casbin.IEnforcer, securityConfig *SecurityConfig, rules [][]string) error + func MustNewEnforcer(securityConfig *SecurityConfig, db *gorm.DB) casbin.IEnforcer + func NewEnforcer(securityConfig *SecurityConfig, db *gorm.DB) (casbin.IEnforcer, error) + type AuthTicket struct + ClientType string + RequestID string + Signature string + Subject string + Timestamp string + Token string + func (a *AuthTicket) VerifySignature(signKey string) bool + func (a *AuthTicket) VerifyTimeWindow(timeWindow time.Duration) error + func (a *AuthTicket) VerifyToken(validateFn func(token string) (*JWTPayload, error)) error + type JWTConfig struct + JWTPrivateKey string + JWTPublicKey string + type JWTOper interface + IssueToken func(subject string, expiration time.Time, set map[string]interface{}) (string, error) + ParseToken func(token string) (*JWTPayload, error) + ValidateToken func(token string) (*JWTPayload, error) + func MustNewJWTOper(config *SecurityConfig) JWTOper + func NewJWTOper(config *SecurityConfig) (JWTOper, error) + type JWTPayload struct + Expires time.Time + Set map[string]interface{} + Subject string + type ReplayChecker interface + VerifyReplay func(requestID string) error + func NewRedisReplayChecker(redisOper ndb.RedisOper, securityConfig *SecurityConfig) ReplayChecker + type SecurityConfig struct + Anons []string + JWT *JWTConfig + Model string + Policies []string + RefreshSignKeyLife bool + SignKeyLifeTime time.Duration + TimeWindow time.Duration + func (conf *SecurityConfig) SetDefaultValues() + type SignKeyStore interface + Get func(clientType, subject string) (string, error) + Store func(clientType, subject, signKey string) error + func NewRedisSignKeyStore(redisOper ndb.RedisOper, securityConfig *SecurityConfig) SignKeyStore