Documentation
¶
Index ¶
- func NewValidationError(field, message, code string) error
- type CompositeValidator
- type ContentValidator
- type ContentValidatorConfig
- type ContentValidatorFunc
- type MessageValidator
- type RateLimitValidator
- type RateLimitValidatorConfig
- type Schema
- type SchemaValidator
- type SecurityValidator
- type SecurityValidatorConfig
- type ValidationError
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewValidationError ¶
NewValidationError creates a validation error.
Types ¶
type CompositeValidator ¶
type CompositeValidator struct {
// contains filtered or unexported fields
}
CompositeValidator chains multiple validators.
func NewCompositeValidator ¶
func NewCompositeValidator(validators ...MessageValidator) *CompositeValidator
NewCompositeValidator creates a composite validator.
func (*CompositeValidator) Add ¶
func (cv *CompositeValidator) Add(validator MessageValidator)
Add adds a validator to the chain.
func (*CompositeValidator) Validate ¶
func (cv *CompositeValidator) Validate(ctx context.Context, msg *streaming.Message, sender streaming.EnhancedConnection) error
Validate runs all validators.
func (*CompositeValidator) ValidateContent ¶
func (cv *CompositeValidator) ValidateContent(content any) error
ValidateContent validates content with all validators.
func (*CompositeValidator) ValidateMetadata ¶
func (cv *CompositeValidator) ValidateMetadata(metadata map[string]any) error
ValidateMetadata validates metadata with all validators.
type ContentValidator ¶
type ContentValidator struct {
// contains filtered or unexported fields
}
ContentValidator validates message content.
func NewContentValidator ¶
func NewContentValidator(config ContentValidatorConfig) *ContentValidator
NewContentValidator creates a content validator.
func (*ContentValidator) Validate ¶
func (cv *ContentValidator) Validate(ctx context.Context, msg *streaming.Message, sender streaming.EnhancedConnection) error
Validate validates the message.
func (*ContentValidator) ValidateContent ¶
func (cv *ContentValidator) ValidateContent(content any) error
ValidateContent validates content data.
func (*ContentValidator) ValidateMetadata ¶
func (cv *ContentValidator) ValidateMetadata(metadata map[string]any) error
ValidateMetadata validates metadata.
type ContentValidatorConfig ¶
type ContentValidatorConfig struct {
// Length checks
MaxContentLength int
MinContentLength int
// Required fields
RequireUserID bool
RequireRoomID bool
RequireType bool
// Format validation
ValidateURLs bool
ValidateEmails bool
// Custom validators
CustomValidators map[string]ContentValidatorFunc
}
ContentValidatorConfig configures content validation.
type ContentValidatorFunc ¶
ContentValidatorFunc is a custom validation function.
type MessageValidator ¶
type MessageValidator interface {
// Validate checks message before acceptance
Validate(ctx context.Context, msg *streaming.Message, sender streaming.EnhancedConnection) error
// ValidateContent validates message content
ValidateContent(content any) error
// ValidateMetadata validates metadata
ValidateMetadata(metadata map[string]any) error
}
MessageValidator validates messages before acceptance.
type RateLimitValidator ¶
type RateLimitValidator struct {
// contains filtered or unexported fields
}
RateLimitValidator validates message rate limits.
func NewRateLimitValidator ¶
func NewRateLimitValidator(config RateLimitValidatorConfig) *RateLimitValidator
NewRateLimitValidator creates a rate limit validator.
func (*RateLimitValidator) Validate ¶
func (rlv *RateLimitValidator) Validate(ctx context.Context, msg *streaming.Message, sender streaming.EnhancedConnection) error
Validate checks if message passes rate limit.
func (*RateLimitValidator) ValidateContent ¶
func (rlv *RateLimitValidator) ValidateContent(content any) error
ValidateContent is not used for rate limit validation.
func (*RateLimitValidator) ValidateMetadata ¶
func (rlv *RateLimitValidator) ValidateMetadata(metadata map[string]any) error
ValidateMetadata is not used for rate limit validation.
type RateLimitValidatorConfig ¶
type RateLimitValidatorConfig struct {
// Per-user limits
MessagesPerSecond int
MessagesPerMinute int
BurstSize int
// Per-room limits
RoomMessagesPerSecond int
// Dynamic throttling
EnableDynamicThrottling bool
ThrottleThreshold float64 // % of limit before throttling
}
RateLimitValidatorConfig configures rate limit validation.
type Schema ¶
type Schema struct {
Type string `json:"type"`
Properties map[string]Schema `json:"properties,omitempty"`
Required []string `json:"required,omitempty"`
MinLength *int `json:"minLength,omitempty"`
MaxLength *int `json:"maxLength,omitempty"`
Pattern string `json:"pattern,omitempty"`
Enum []any `json:"enum,omitempty"`
}
Schema represents a JSON schema for validation.
type SchemaValidator ¶
type SchemaValidator struct {
// contains filtered or unexported fields
}
SchemaValidator validates messages against JSON schemas.
func NewSchemaValidator ¶
func NewSchemaValidator(schemas map[string]*Schema) *SchemaValidator
NewSchemaValidator creates a schema validator.
func (*SchemaValidator) Validate ¶
func (sv *SchemaValidator) Validate(ctx context.Context, msg *streaming.Message, sender streaming.EnhancedConnection) error
Validate validates message against schema.
func (*SchemaValidator) ValidateContent ¶
func (sv *SchemaValidator) ValidateContent(content any) error
ValidateContent validates content structure.
func (*SchemaValidator) ValidateMetadata ¶
func (sv *SchemaValidator) ValidateMetadata(metadata map[string]any) error
ValidateMetadata validates metadata structure.
type SecurityValidator ¶
type SecurityValidator struct {
// contains filtered or unexported fields
}
SecurityValidator validates message security.
func NewSecurityValidator ¶
func NewSecurityValidator(config SecurityValidatorConfig) *SecurityValidator
NewSecurityValidator creates a security validator.
func (*SecurityValidator) Validate ¶
func (sv *SecurityValidator) Validate(ctx context.Context, msg *streaming.Message, sender streaming.EnhancedConnection) error
Validate performs security validation.
func (*SecurityValidator) ValidateContent ¶
func (sv *SecurityValidator) ValidateContent(content any) error
ValidateContent validates content for security issues.
func (*SecurityValidator) ValidateMetadata ¶
func (sv *SecurityValidator) ValidateMetadata(metadata map[string]any) error
ValidateMetadata validates metadata for security issues.
type SecurityValidatorConfig ¶
type SecurityValidatorConfig struct {
// XSS prevention
EnableXSSPrevention bool
AllowedTags []string
AllowedAttributes []string
// Injection prevention
EnableSQLInjectionCheck bool
EnableScriptInjectionCheck bool
// Link safety
EnableLinkSafety bool
AllowedProtocols []string
BlockedDomains []string
// Malicious content
EnableMaliciousContentCheck bool
}
SecurityValidatorConfig configures security validation.
type ValidationError ¶
ValidationError represents a validation failure.
func (*ValidationError) Error ¶
func (ve *ValidationError) Error() string