diff --git a/gazelle-proxy-common-war/src/main/webapp/messages/syslog.xhtml b/gazelle-proxy-common-war/src/main/webapp/messages/syslog.xhtml index 8f5955cd1868cb36ad6b290d7ffc545c0f14fca8..a9cda94a9bc01e34fd45478c64975ea6a19de227 100644 --- a/gazelle-proxy-common-war/src/main/webapp/messages/syslog.xhtml +++ b/gazelle-proxy-common-war/src/main/webapp/messages/syslog.xhtml @@ -13,6 +13,26 @@ <h:form> <h:panelGrid columns="2"> <ui:include src="commonProperties.xhtml" /> + + <h:outputText value="Facility :" /> + <h:outputText value="#{messageBean.message.facility}" /> + <h:outputText value="Hostname :" /> + <h:outputText value="#{messageBean.message.hostName}" /> + <h:outputText value="Severity :" /> + <h:outputText value="#{messageBean.message.severity}" /> + <h:outputText value="Timestamp :" /> + <h:outputText value="#{messageBean.message.timestamp}" /> + <h:outputText value="Tag :" /> + <h:outputText value="#{messageBean.message.tag}" /> + <h:outputText value="Application name :" /> + <h:outputText value="#{messageBean.message.appName}" /> + <h:outputText value="Message id :" /> + <h:outputText value="#{messageBean.message.messageId}" /> + <h:outputText value="Proc id :" /> + <h:outputText value="#{messageBean.message.procId}" /> + <h:outputText value="Payload :" /> + <h:outputText value="#{messageBean.message.payLoad}" /> + </h:panelGrid> <ui:include src="commonDownload.xhtml" /> </h:form> diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/model/message/SyslogMessage.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/model/message/SyslogMessage.java index 069b5bbea027be22b34cd27c58a88f90425ad620..393edda620e74bd7244e9448f2ee27302edc06eb 100644 --- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/model/message/SyslogMessage.java +++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/model/message/SyslogMessage.java @@ -45,6 +45,8 @@ public class SyslogMessage extends AbstractMessage implements java.io.Serializab private String procId; + private String payLoad; + public SyslogMessage() { super(); setProxySide(ProxySide.REQUEST); @@ -61,7 +63,8 @@ public class SyslogMessage extends AbstractMessage implements java.io.Serializab this.appName = request.getAppName(); this.messageId = request.getMessageId(); this.procId = request.getProcId(); - setMessageReceivedAsString(request.getMessage()); + this.payLoad = request.getPayload(); + setMessageReceivedAsString(request.getRawMessage()); } public ChannelType getChannelType() { @@ -132,4 +135,12 @@ public class SyslogMessage extends AbstractMessage implements java.io.Serializab this.procId = procId; } + public String getPayLoad() { + return payLoad; + } + + public void setPayLoad(String payLoad) { + this.payLoad = payLoad; + } + } diff --git a/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/protocols/syslog/SyslogData.java b/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/protocols/syslog/SyslogData.java index c6392f39c191604a56ebabf465fc194dae3d73ce..d80e7b5aea66735826302c1eb1fbb80b5c8ab797 100644 --- a/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/protocols/syslog/SyslogData.java +++ b/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/protocols/syslog/SyslogData.java @@ -14,34 +14,37 @@ public class SyslogData { private String hostName; private int severity; private String timestamp; - private String message; + private String payload; private String tag; private String appName; private String messageId; private String procId; + private String rawMessage; - public SyslogData(SyslogMessage<?> syslogMessage) { + public SyslogData(SyslogMessage<?> syslogMessage, String rawMessage) { super(); + this.rawMessage = rawMessage; + facility = syslogMessage.getFacility(); hostName = syslogMessage.getHostName(); severity = syslogMessage.getSeverity(); timestamp = syslogMessage.getTimestamp(); LogMessage<?> logMessage = syslogMessage.getMessage(); - message = null; + payload = null; if (logMessage != null) { Object messageObject = logMessage.getMessageObject(); if (messageObject instanceof String) { - message = (String) messageObject; + payload = (String) messageObject; } else { ByteArrayOutputStream bos = new ByteArrayOutputStream(); try { logMessage.write(bos); - message = new String(bos.toByteArray()); + payload = new String(bos.toByteArray()); } catch (SyslogException e) { - message = null; + payload = null; } } } @@ -79,10 +82,6 @@ public class SyslogData { return timestamp; } - public String getMessage() { - return message; - } - public String getTag() { return tag; } @@ -99,6 +98,14 @@ public class SyslogData { return procId; } + public String getPayload() { + return payload; + } + + public String getRawMessage() { + return rawMessage; + } + @Override public String toString() { StringBuilder builder = new StringBuilder(); @@ -110,8 +117,8 @@ public class SyslogData { builder.append(severity); builder.append(", timestamp="); builder.append(timestamp); - builder.append(", message="); - builder.append(message); + builder.append(", payload="); + builder.append(payload); builder.append(", tag="); builder.append(tag); builder.append(", appName="); @@ -120,6 +127,8 @@ public class SyslogData { builder.append(messageId); builder.append(", procId="); builder.append(procId); + builder.append(", rawMessage="); + builder.append(rawMessage); builder.append("]"); return builder.toString(); } diff --git a/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/protocols/syslog/SyslogFrameDecoder.java b/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/protocols/syslog/SyslogFrameDecoder.java index d952089d5cbf0f965ad87006f2ca8beafe450684..213f52256557d21153ea5a21957d1c26bc7e6873 100644 --- a/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/protocols/syslog/SyslogFrameDecoder.java +++ b/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/protocols/syslog/SyslogFrameDecoder.java @@ -40,9 +40,10 @@ class SyslogFrameDecoder extends FrameDecoder { if (currentFrame.size() == messageSize) { status = STATUS_END; byte[] bytes = currentFrame.toByteArray(); + String rawMessage = new String(bytes, "UTF-8"); SyslogMessage<?> syslogMessage = SyslogMessageFactory.getFactory().read( new ByteArrayInputStream(bytes)); - return new SyslogData(syslogMessage); + return new SyslogData(syslogMessage, rawMessage); } currentFrame.write(readByte); break;