Class HTTPHeaderValidationPipeline

java.lang.Object
de.cuioss.http.security.pipeline.AbstractValidationPipeline
de.cuioss.http.security.pipeline.HTTPHeaderValidationPipeline
All Implemented Interfaces:
HttpSecurityValidator

Sequential validation pipeline specifically for HTTP header components.

Validation Sequence

  1. Length Validation - Enforces maximum header length limits
  2. Character Validation - Validates RFC 7230 header characters
  3. Normalization - Header normalization and security checks
  4. Pattern Matching - Detects injection attacks and suspicious patterns

Design Principles

  • Sequential Execution - Each stage processes the output of the previous stage
  • Early Termination - Pipeline stops on first security violation
  • Security First - Validates before any transformation
  • Immutable - Thread-safe pipeline instance

HTTP Header Security

  • Header Injection Prevention - Detects CRLF injection attempts
  • RFC 7230 Compliance - Enforces HTTP header character restrictions
  • Length Limits - Prevents header-based DoS attacks
  • Pattern Detection - Identifies malicious header values

Usage Example

 SecurityConfiguration config = SecurityConfiguration.defaults();
 SecurityEventCounter counter = new SecurityEventCounter();

 HTTPHeaderValidationPipeline pipeline = new HTTPHeaderValidationPipeline(config, counter);

 try {
     String safeHeader = pipeline.validate("Bearer eyJhbGciOiJIUzI1NiJ9...");
     // Use safeHeader for processing
 } catch (UrlSecurityException e) {
     // Handle security violation
     log.warn("Header validation failed: {}", e.getMessage());
 }
 
Implements: Task P3 from HTTP verification specification
Since:
1.0