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 :
IMutateTransportMessages
{
public void MutateIncoming(TransportMessage transportMessage)
{
transportMessage.Body = transportMessage.Body.Reverse().ToArray();
}
public void MutateOutgoing(object[] messages, TransportMessage transportMessage)
{
transportMessage.Body = transportMessage.Body.Reverse().ToArray();
}
}
The encrypting mutator must be injected via dependency injection:
var configureComponents = configuration.Configurer;
configureComponents.ConfigureComponent<MessageEncryptor>(DependencyLifecycle.InstancePerCall);