Getting Started
Architecture
NServiceBus
Transports
Persistence
ServiceInsight
ServicePulse
ServiceControl
Monitoring
Samples

Message Body Encryption

Component: NServiceBus
NuGet Package: NServiceBus (9.x)

Message encryption leverages the pipeline to encrypt the entire serialized message body.

Data in the message headers is not encrypted.

One way of achieving this is by using a transport message mutator.

public class MessageEncryptor :
    IMutateIncomingTransportMessages,
    IMutateOutgoingTransportMessages
{
    public Task MutateIncoming(MutateIncomingTransportMessageContext context)
    {
        context.Body = context.Body.ToArray().Reverse().ToArray();
        return Task.CompletedTask;
    }

    public Task MutateOutgoing(MutateOutgoingTransportMessageContext context)
    {
        context.OutgoingBody = context.OutgoingBody.ToArray().Reverse().ToArray();
        return Task.CompletedTask;
    }
}

The encrypting mutator must be injected via dependency injection:

endpointConfiguration.RegisterMessageMutator(new MessageEncryptor());

Samples

Related Articles

  • Security
    Security features for messages, transports, and persisters.