From 67d4b0d99d0fbd736334bd25d5193d69b6bf8084 Mon Sep 17 00:00:00 2001 From: Rezapu Obed <obed.ubaidillah@gmail.com> Date: Mon, 13 Nov 2023 21:28:31 +0700 Subject: [PATCH] feat(logging): add outbound and inbound logging desc --- src/main/java/handler/KeyHandler.java | 2 +- src/main/java/handler/LoggingHandler.java | 21 ++++++++++++++++----- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/main/java/handler/KeyHandler.java b/src/main/java/handler/KeyHandler.java index 17c237f..d579448 100644 --- a/src/main/java/handler/KeyHandler.java +++ b/src/main/java/handler/KeyHandler.java @@ -60,7 +60,7 @@ public class KeyHandler implements SOAPHandler<SOAPMessageContext> { soapFault.setFaultString(faultString); } - private boolean authorize(SOAPMessageContext ctx){ + public static boolean authorize(SOAPMessageContext ctx){ try{ @SuppressWarnings("unchecked") Map<String, List<?>> headers = (Map<String, List<?>>) ctx.get(MessageContext.HTTP_REQUEST_HEADERS); diff --git a/src/main/java/handler/LoggingHandler.java b/src/main/java/handler/LoggingHandler.java index a043b06..64e9a1b 100644 --- a/src/main/java/handler/LoggingHandler.java +++ b/src/main/java/handler/LoggingHandler.java @@ -12,6 +12,8 @@ import javax.xml.ws.handler.soap.SOAPHandler; import javax.xml.ws.handler.soap.SOAPMessageContext; import com.sun.net.httpserver.HttpExchange; +import com.sun.net.httpserver.Headers; + import model.ApiKeysModel; import model.LoggingModel; @@ -29,6 +31,7 @@ public class LoggingHandler implements SOAPHandler<SOAPMessageContext> { @Override public boolean handleFault(SOAPMessageContext ctx){ + insertLog(ctx); return true; } @@ -41,11 +44,18 @@ public class LoggingHandler implements SOAPHandler<SOAPMessageContext> { private void insertLog(SOAPMessageContext ctx){ try { StringBuilder description = new StringBuilder(); - // if((boolean) ctx.get("authorized")){ - // description.append("Called "); - // }else{ - // description.append("Unauthorized access tried to call "); - // } + + boolean outbound = (boolean) ctx.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY); + boolean authorized = KeyHandler.authorize(ctx); + if(outbound){ + if(authorized){ + description.append("Called "); + }else{ + description.append("Unauthorized tried to call "); + } + }else{ + description.append("Attempting to call "); + } QName operation = (QName) ctx.get(MessageContext.WSDL_OPERATION); description.append(operation.getLocalPart()); @@ -54,6 +64,7 @@ public class LoggingHandler implements SOAPHandler<SOAPMessageContext> { String ip = exchange.getRemoteAddress().getAddress().getHostAddress(); String endpoint = exchange.getRequestURI().toString(); + Timestamp ts = new Timestamp(System.currentTimeMillis()); LoggingModel.getInstance().createLog(description.toString(), ip, endpoint, ts); -- GitLab