Class ValidationService

java.lang.Object
com.tnsai.quality.security.validation.ValidationService

public class ValidationService extends Object
Comprehensive input validation service.

Provides validation for various input types including strings, numbers, JSON, and structured parameters. Supports configurable limits and custom validation rules.

Features

  • String length and pattern validation
  • Numeric range validation
  • JSON structure validation
  • Parameter size limits
  • Dangerous pattern detection
  • Sanitization utilities

Usage Example


 ValidationService validator = ValidationService.builder()
     .maxStringLength(10000)
     .maxParameterCount(50)
     .blockDangerousPatterns(true)
     .build();

 // Validate string input
 ValidationResult result = validator.validateString("user input", "message");
 if (!result.isValid()) {
     throw new SecurityException(ViolationType.VALIDATION_FAILURE, result.getErrors());
 }

 // Validate parameters
 Map<String, Object> params = Map.of("name", "John", "age", 25);
 ValidationResult paramResult = validator.validateParameters(params);

 // Validate and throw
 validator.validateOrThrow(input, "userInput");
 
  • Field Details

    • DEFAULT_MAX_STRING_LENGTH

      public static final int DEFAULT_MAX_STRING_LENGTH
      See Also:
    • DEFAULT_MAX_PARAMETER_COUNT

      public static final int DEFAULT_MAX_PARAMETER_COUNT
      See Also:
    • DEFAULT_MAX_NESTING_DEPTH

      public static final int DEFAULT_MAX_NESTING_DEPTH
      See Also:
    • DEFAULT_MAX_ARRAY_SIZE

      public static final int DEFAULT_MAX_ARRAY_SIZE
      See Also:
  • Method Details

    • builder

      public static ValidationService.Builder builder()
      Creates a builder for ValidationService.
      Returns:
      new builder
    • withDefaults

      public static ValidationService withDefaults()
      Creates a service with default settings.
      Returns:
      default validation service
    • strict

      public static ValidationService strict()
      Creates a strict validation service. Enables all security checks and lower limits.
      Returns:
      strict validation service
    • validateString

      public ValidationResult validateString(String value, String fieldName)
      Validates a string input.
      Parameters:
      value - the string to validate
      fieldName - name of the field (for error messages)
      Returns:
      validation result
    • validateNumber

      public ValidationResult validateNumber(Number value, String fieldName, Number min, Number max)
      Validates a numeric value.
      Parameters:
      value - the number to validate
      fieldName - name of the field
      min - minimum value (inclusive)
      max - maximum value (inclusive)
      Returns:
      validation result
    • validateParameters

      public ValidationResult validateParameters(Map<String,Object> parameters)
      Validates a map of parameters.
      Parameters:
      parameters - parameters to validate
      Returns:
      validation result
    • validateOrThrow

      public void validateOrThrow(String value, String fieldName)
      Validates input and throws SecurityException if invalid.
      Parameters:
      value - value to validate
      fieldName - field name
      Throws:
      com.tnsai.security.SecurityException - if validation fails
    • validateParametersOrThrow

      public void validateParametersOrThrow(Map<String,Object> parameters)
      Validates parameters and throws SecurityException if invalid.
      Parameters:
      parameters - parameters to validate
      Throws:
      com.tnsai.security.SecurityException - if validation fails
    • sanitize

      public String sanitize(String input)
      Sanitizes a string by removing dangerous patterns.
      Parameters:
      input - input string
      Returns:
      sanitized string
    • containsDangerousPatterns

      public boolean containsDangerousPatterns(String value)
      Checks if a string contains dangerous patterns.
      Parameters:
      value - string to check
      Returns:
      true if dangerous patterns are detected