request.request_validator.http_req

Provides the HttpRequestValidator class for validating HTTP requests.

Classes

ValidationComponent

Abstract base class to represent a component in composite validation.

PayloadSizeValidation

Validate payload size.

ContentTypeValidation

Validate request content type.

AcceptHeaderValidation

Validate the Accept header.

ClientCertificateValidation

Check and optionally process the SSL client certificate from the request headers.

IntermediateCertificatesValidation

Validate and process intermediate CA certificates from the request headers.

ContentTransferEncodingValidation

Validate the Content-Transfer-Encoding header and decode base64-encoded messages if required.

CompositeValidation

Composite validator to group multiple validators.

CmpHttpRequestValidator

Validator for CMP-specific HTTP requests.

EstHttpRequestValidator

Validator for EST-specific HTTP requests.

Module Contents

class request.request_validator.http_req.ValidationComponent[source]

Bases: abc.ABC

Abstract base class to represent a component in composite validation.

abstractmethod validate(context)[source]

Execute validation logic and enrich context.

Parameters:

context (request.request_context.HttpBaseRequestContext)

Return type:

None

class request.request_validator.http_req.PayloadSizeValidation(max_payload_size)[source]

Bases: ValidationComponent, trustpoint.logger.LoggerMixin

Validate payload size.

Parameters:

max_payload_size (int)

max_payload_size[source]
validate(context)[source]

Validate the payload size against the maximum allowed size.

Parameters:

context (request.request_context.HttpBaseRequestContext)

Return type:

None

class request.request_validator.http_req.ContentTypeValidation(expected_content_type)[source]

Bases: ValidationComponent, trustpoint.logger.LoggerMixin

Validate request content type.

Parameters:

expected_content_type (str)

expected_content_type[source]
validate(context)[source]

Validate the presence of the ‘Content-Type’ header and check if it matches the expected type.

Parameters:

context (request.request_context.HttpBaseRequestContext)

Return type:

None

class request.request_validator.http_req.AcceptHeaderValidation(allowed_content_types)[source]

Bases: ValidationComponent, trustpoint.logger.LoggerMixin

Validate the Accept header.

Parameters:

allowed_content_types (list[str])

allowed_content_types[source]
validate(context)[source]

Validate the presence of the ‘Accept’ header and check if it matches any of the allowed types.

Parameters:

context (request.request_context.HttpBaseRequestContext)

Return type:

None

class request.request_validator.http_req.ClientCertificateValidation[source]

Bases: ValidationComponent, trustpoint.logger.LoggerMixin

Check and optionally process the SSL client certificate from the request headers.

validate(context)[source]

Check for the presence of the ‘HTTP_SSL_CLIENT_CERT’ header and set the cert in the context if present.

Parameters:

context (request.request_context.HttpBaseRequestContext)

Return type:

None

class request.request_validator.http_req.IntermediateCertificatesValidation[source]

Bases: ValidationComponent, trustpoint.logger.LoggerMixin

Validate and process intermediate CA certificates from the request headers.

validate(context)[source]

Extract and validate intermediate CA certificates from the ‘SSL_CLIENT_CERT_CHAIN_*’ headers.

Parameters:

context (request.request_context.HttpBaseRequestContext)

Return type:

None

class request.request_validator.http_req.ContentTransferEncodingValidation[source]

Bases: ValidationComponent, trustpoint.logger.LoggerMixin

Validate the Content-Transfer-Encoding header and decode base64-encoded messages if required.

validate(context)[source]

Validates and processes requests with a Content-Transfer-Encoding header set to ‘base64’.

Parameters:

context (request.request_context.HttpBaseRequestContext)

Return type:

None

class request.request_validator.http_req.CompositeValidation[source]

Bases: ValidationComponent, trustpoint.logger.LoggerMixin

Composite validator to group multiple validators.

components: list[ValidationComponent] = [][source]
add(component)[source]

Add a new component to the composite.

Parameters:

component (ValidationComponent)

Return type:

None

remove(component)[source]

Remove a component from the composite.

Parameters:

component (ValidationComponent)

Return type:

None

validate(context)[source]

Validate all child components.

Parameters:

context (request.request_context.HttpBaseRequestContext)

Return type:

None

class request.request_validator.http_req.CmpHttpRequestValidator[source]

Bases: CompositeValidation

Validator for CMP-specific HTTP requests.

class request.request_validator.http_req.EstHttpRequestValidator[source]

Bases: CompositeValidation

Validator for EST-specific HTTP requests.