diff --git a/src/main/java/org/tubes/middlewares/ApiKeyMiddleware.java b/src/main/java/org/tubes/middlewares/ApiKeyMiddleware.java index 512245660ed55115206855c7403fdf9b76091c27..a424a990cbd28ded11de8d5b9c23323f3b710bde 100644 --- a/src/main/java/org/tubes/middlewares/ApiKeyMiddleware.java +++ b/src/main/java/org/tubes/middlewares/ApiKeyMiddleware.java @@ -29,7 +29,6 @@ public class ApiKeyMiddleware implements SOAPHandler<SOAPMessageContext> { @Override public boolean handleMessage(SOAPMessageContext context) { - System.out.println(this.context); Boolean isOutbound = (Boolean) context.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY); if (!isOutbound) { try { diff --git a/src/main/java/org/tubes/middlewares/LoggingMiddleware.java b/src/main/java/org/tubes/middlewares/LoggingMiddleware.java index d11f0eb0802470e17e70df819453e005b4f1de2c..ec0c0f96a2c6eb4b16437413a74b0acc364def22 100644 --- a/src/main/java/org/tubes/middlewares/LoggingMiddleware.java +++ b/src/main/java/org/tubes/middlewares/LoggingMiddleware.java @@ -52,23 +52,24 @@ public class LoggingMiddleware implements SOAPHandler<SOAPMessageContext> { @Override public boolean handleMessage(SOAPMessageContext context) { - String client = (String) context.get("authenticated-client"); + String client = (String) context.get("client"); Boolean isOutbound = (Boolean) context.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY); - HttpExchange httpExchange = (HttpExchange) context.get(this.httpExchangeKey); if (isOutbound) { return true; } + HttpExchange httpExchange = (HttpExchange) context.get(this.httpExchangeKey); + String remoteAddr = getRemoteAddr(context); String endpoint = httpExchange.getRequestURI().toString(); - - try { SOAPPart soapPart = context.getMessage().getSOAPPart(); SOAPEnvelope soapEnvelope = soapPart.getEnvelope(); SOAPBody soapBody = soapEnvelope.getBody(); - Node operation = soapBody.getChildNodes().item(1); + NodeList operations = soapBody.getChildNodes(); + + Node operation = operations.item(operations.getLength() - 1); String description = String.format("%s called %s", client, operation.getLocalName()); NodeList parameters = operation.getChildNodes(); @@ -76,6 +77,7 @@ public class LoggingMiddleware implements SOAPHandler<SOAPMessageContext> { for (int i = 1; i < parameters.getLength(); i += 2){ description = String.format("%s %s(%s)", description, parameters.item(i).getLocalName(), parameters.item(i).getTextContent()); } + System.out.println(description); Timestamp ts = new Timestamp(System.currentTimeMillis()); String s = ts.toString().split("\\.")[0]; Log model = new Log(description, remoteAddr, endpoint, s); @@ -85,6 +87,8 @@ public class LoggingMiddleware implements SOAPHandler<SOAPMessageContext> { return false; } catch (SQLException e) { throw new RuntimeException(e); + } catch (Exception e) { + e.printStackTrace(); } return true; } diff --git a/src/main/resources/handler-chain.xml b/src/main/resources/handler-chain.xml index 35090ccc3ea930092e04f1fd150b877769f4b8b5..2d036d62dec1eb807c9ad4771a5d2cecfe34f498 100644 --- a/src/main/resources/handler-chain.xml +++ b/src/main/resources/handler-chain.xml @@ -2,10 +2,10 @@ <handler-chains xmlns="http://java.sun.com/xml/ns/javaee"> <handler-chain> <handler> - <handler-class>org.tubes.middlewares.ApiKeyMiddleware</handler-class> + <handler-class>org.tubes.middlewares.LoggingMiddleware</handler-class> </handler> <handler> - <handler-class>org.tubes.middlewares.LoggingMiddleware</handler-class> + <handler-class>org.tubes.middlewares.ApiKeyMiddleware</handler-class> </handler> </handler-chain> </handler-chains> \ No newline at end of file