diff --git a/src/main/java/handler/KeyHandler.java b/src/main/java/handler/KeyHandler.java index 17c237f3f59b77c88b79c99f0b2e55cb32f96b0b..d5794482e8b6ac50b8f9a8771700b61fcf5abc9e 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 a043b063fab33be62ced2028703466538a79a997..64e9a1bf5823d004ad59e7882bcaa03317e3ae26 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);