check method

  1. @override
Future<SecurityResult> check(
  1. RequestContext context
)
override

Inspects context and returns a SecurityResult.

Implementations should be side-effect-light with respect to context.body (avoid destructive mutation) but may freely read/write context.metadata to communicate with later layers.

Implementation

@override
Future<SecurityResult> check(RequestContext context) async {
  final size = _estimateSizeBytes(context.body);
  context.setMeta('payloadSize', size);

  if (size > maxPayloadSize) {
    return SecurityResult.block(
      message: 'Payload size ($size bytes) exceeds maximum allowed '
          '($maxPayloadSize bytes)',
      flags: const ['payload_too_large'],
      riskScore: 0.9,
    );
  }

  return SecurityResult.allow(message: 'Payload size within limits');
}