Class ValidationService
java.lang.Object
com.tnsai.quality.security.validation.ValidationService
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");
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classBuilder for ValidationService. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final intstatic final intstatic final int -
Method Summary
Modifier and TypeMethodDescriptionstatic ValidationService.Builderbuilder()Creates a builder for ValidationService.booleancontainsDangerousPatterns(String value) Checks if a string contains dangerous patterns.Sanitizes a string by removing dangerous patterns.static ValidationServicestrict()Creates a strict validation service.validateNumber(Number value, String fieldName, Number min, Number max) Validates a numeric value.voidvalidateOrThrow(String value, String fieldName) Validates input and throws SecurityException if invalid.validateParameters(Map<String, Object> parameters) Validates a map of parameters.voidvalidateParametersOrThrow(Map<String, Object> parameters) Validates parameters and throws SecurityException if invalid.validateString(String value, String fieldName) Validates a string input.static ValidationServiceCreates a service with default settings.
-
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
Creates a builder for ValidationService.- Returns:
- new builder
-
withDefaults
Creates a service with default settings.- Returns:
- default validation service
-
strict
Creates a strict validation service. Enables all security checks and lower limits.- Returns:
- strict validation service
-
validateString
Validates a string input.- Parameters:
value- the string to validatefieldName- name of the field (for error messages)- Returns:
- validation result
-
validateNumber
Validates a numeric value.- Parameters:
value- the number to validatefieldName- name of the fieldmin- minimum value (inclusive)max- maximum value (inclusive)- Returns:
- validation result
-
validateParameters
Validates a map of parameters.- Parameters:
parameters- parameters to validate- Returns:
- validation result
-
validateOrThrow
Validates input and throws SecurityException if invalid.- Parameters:
value- value to validatefieldName- field name- Throws:
com.tnsai.security.SecurityException- if validation fails
-
validateParametersOrThrow
Validates parameters and throws SecurityException if invalid.- Parameters:
parameters- parameters to validate- Throws:
com.tnsai.security.SecurityException- if validation fails
-
sanitize
Sanitizes a string by removing dangerous patterns.- Parameters:
input- input string- Returns:
- sanitized string
-
containsDangerousPatterns
Checks if a string contains dangerous patterns.- Parameters:
value- string to check- Returns:
- true if dangerous patterns are detected
-