GH-2874: Syslog - copy IpHeaders to message

Resolves https://github.com/spring-projects/spring-integration/issues/2874

**cherry-pick to 5.1.x**
This commit is contained in:
Gary Russell
2019-04-01 11:20:34 -04:00
committed by Artem Bilan
parent d2853be1ca
commit cb538619bb
3 changed files with 9 additions and 1 deletions

View File

@@ -93,6 +93,7 @@ public class DefaultMessageConverter implements MessageConverter, BeanFactoryAwa
}
}
return getMessageBuilderFactory().withPayload(this.asMap ? map : message.getPayload())
.copyHeaders(message.getHeaders())
.copyHeaders(out)
.build();
}

View File

@@ -85,7 +85,8 @@ public class RFC5424MessageConverter extends DefaultMessageConverter {
}
AbstractIntegrationMessageBuilder<Object> builder = getMessageBuilderFactory().withPayload(
asMap() ? map : originalContent);
asMap() ? map : originalContent)
.copyHeaders(message.getHeaders());
if (!asMap() && isMap) {
builder.copyHeaders(map);
}

View File

@@ -42,6 +42,7 @@ import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.integration.channel.QueueChannel;
import org.springframework.integration.ip.IpHeaders;
import org.springframework.integration.ip.tcp.connection.AbstractServerConnectionFactory;
import org.springframework.integration.ip.tcp.connection.TcpNioServerConnectionFactory;
import org.springframework.integration.ip.udp.UnicastReceivingChannelAdapter;
@@ -84,6 +85,7 @@ public class SyslogReceivingChannelAdapterTests {
Message<?> message = outputChannel.receive(10000);
assertThat(message).isNotNull();
assertThat(message.getHeaders().get("syslog_HOST")).isEqualTo("WEBERN");
assertThat(message.getHeaders().get(IpHeaders.IP_ADDRESS)).isNotNull();
adapter.stop();
}
@@ -128,6 +130,7 @@ public class SyslogReceivingChannelAdapterTests {
Message<?> message = outputChannel.receive(10000);
assertThat(message).isNotNull();
assertThat(message.getHeaders().get("syslog_HOST")).isEqualTo("WEBERN");
assertThat(message.getHeaders().get(IpHeaders.IP_ADDRESS)).isNotNull();
adapter.stop();
assertThat(latch.await(10, TimeUnit.SECONDS)).isTrue();
}
@@ -161,6 +164,7 @@ public class SyslogReceivingChannelAdapterTests {
assertThat(message.getHeaders().get("syslog_HOST")).isEqualTo("WEBERN");
assertThat(new String((byte[]) message.getPayload(), "UTF-8"))
.isEqualTo("<157>JUL 26 22:08:35 WEBERN TESTING[70729]: TEST SYSLOG MESSAGE");
assertThat(message.getHeaders().get(IpHeaders.IP_ADDRESS)).isNotNull();
adapter.stop();
}
@@ -210,6 +214,7 @@ public class SyslogReceivingChannelAdapterTests {
Message<Map<String, ?>> message = (Message<Map<String, ?>>) outputChannel.receive(10000);
assertThat(message).isNotNull();
assertThat(message.getPayload().get("syslog_HOST")).isEqualTo("loggregator");
assertThat(message.getHeaders().get(IpHeaders.IP_ADDRESS)).isNotNull();
adapter.stop();
assertThat(latch.await(10, TimeUnit.SECONDS)).isTrue();
}
@@ -243,6 +248,7 @@ public class SyslogReceivingChannelAdapterTests {
Message<Map<String, ?>> message = (Message<Map<String, ?>>) outputChannel.receive(10000);
assertThat(message).isNotNull();
assertThat(message.getPayload().get("syslog_HOST")).isEqualTo("loggregator");
assertThat(message.getHeaders().get(IpHeaders.IP_ADDRESS)).isNotNull();
adapter.stop();
}