From b7eb4f8017d96709a98693dcadf83be37c9c99bd Mon Sep 17 00:00:00 2001 From: alishalistyaa <alisha.listya@gmail.com> Date: Fri, 17 Nov 2023 13:53:59 +0700 Subject: [PATCH] fix: switch handler chain --- .../org/tubes/middlewares/ApiKeyMiddleware.java | 1 - .../org/tubes/middlewares/LoggingMiddleware.java | 14 +++++++++----- src/main/resources/handler-chain.xml | 4 ++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/tubes/middlewares/ApiKeyMiddleware.java b/src/main/java/org/tubes/middlewares/ApiKeyMiddleware.java index 5122456..a424a99 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 d11f0eb..ec0c0f9 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 35090cc..2d036d6 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 -- GitLab