From 17ea0a76a985abb9bb009a47a7d8242191c26d9c Mon Sep 17 00:00:00 2001
From: zidane-itb <16521420@mahasiswa.itb.ac.id>
Date: Sun, 12 Nov 2023 17:09:36 +0700
Subject: [PATCH] cleanin some code

---
 .../java/com/kms/handler/AuthHandler.java     | 17 +++++----
 src/main/java/com/kms/handler/LogHandler.java | 36 +++++++------------
 .../kms/handler/helper/SoapFaultHelper.java   | 32 +++++++++++++++++
 3 files changed, 53 insertions(+), 32 deletions(-)
 create mode 100644 src/main/java/com/kms/handler/helper/SoapFaultHelper.java

diff --git a/src/main/java/com/kms/handler/AuthHandler.java b/src/main/java/com/kms/handler/AuthHandler.java
index 7f57cab..dab838d 100644
--- a/src/main/java/com/kms/handler/AuthHandler.java
+++ b/src/main/java/com/kms/handler/AuthHandler.java
@@ -10,9 +10,9 @@ import javax.xml.ws.handler.soap.SOAPMessageContext;
 import java.util.Iterator;
 import java.util.Set;
 
-public class AuthHandler implements SOAPHandler<SOAPMessageContext>  {
+public class AuthHandler implements SOAPHandler<SOAPMessageContext> {
 
-    private static final String REST_API_KEY = System.getenv("REST_API_KEY");
+    private static final String REST_API_KEY = "REST_API_KEY";
     private static final String MONOLITH_API_KEY = System.getenv("MONOLITH_API_KEY");
     private static final String NAMESPACE = "http://service.kms.com/";
 
@@ -27,21 +27,20 @@ public class AuthHandler implements SOAPHandler<SOAPMessageContext>  {
             final SOAPHeader header = soapMessageContext.getMessage().getSOAPHeader();
             final QName apiKeyQName = new QName(NAMESPACE, "apiKey");
             String apiKey = "";
-            final Iterator x = header.getChildElements(apiKeyQName);
-            if (x.hasNext()) {
-                SOAPElement apiKeyElement = (SOAPElement) x.next();
+            final Iterator it = header.getChildElements(apiKeyQName);
+            if (it.hasNext()) {
+                SOAPElement apiKeyElement = (SOAPElement) it.next();
                 apiKey = apiKeyElement.getValue();
             }
 
             String callerId = "null";
-            if (apiKey.equals(REST_API_KEY)) {
+            if (apiKey.equals(REST_API_KEY))
                 callerId = "REST";
-            }else if (apiKey.equals(MONOLITH_API_KEY)) {
+            else if (apiKey.equals(MONOLITH_API_KEY))
                 callerId = "MONOLITH";
-            }
 
             soapMessageContext.put("callerId", callerId);
-        } catch (SOAPException e) {
+        } catch (SOAPException ignored) {
         }
 
         return true;
diff --git a/src/main/java/com/kms/handler/LogHandler.java b/src/main/java/com/kms/handler/LogHandler.java
index 8975be1..d612126 100644
--- a/src/main/java/com/kms/handler/LogHandler.java
+++ b/src/main/java/com/kms/handler/LogHandler.java
@@ -1,35 +1,24 @@
 package com.kms.handler;
 
 import com.kms.crosscut.LoggingHelper;
+import com.kms.handler.helper.SoapFaultHelper;
 import com.sun.net.httpserver.HttpExchange;
-
+import org.w3c.dom.Node;
 import javax.xml.namespace.QName;
 import javax.xml.soap.SOAPBody;
 import javax.xml.soap.SOAPException;
-import javax.xml.soap.SOAPFactory;
-import javax.xml.soap.SOAPFault;
 import javax.xml.ws.handler.MessageContext;
 import javax.xml.ws.handler.soap.SOAPHandler;
 import javax.xml.ws.handler.soap.SOAPMessageContext;
-import javax.xml.ws.soap.SOAPFaultException;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.net.InetSocketAddress;
+import java.util.Optional;
 import java.util.Set;
 
 public class LogHandler implements SOAPHandler<SOAPMessageContext> {
 
-    private static final SOAPFactory soapFactory;
-
-    static {
-        try {
-            soapFactory = SOAPFactory.newInstance();
-        } catch (SOAPException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
     @Override
     public Set<QName> getHeaders() {
         return null;
@@ -40,9 +29,8 @@ public class LogHandler implements SOAPHandler<SOAPMessageContext> {
         final boolean messageHandled =
                 (boolean) soapMessageContext.getOrDefault("messageHandled", false);
 
-        if (messageHandled) {
+        if (messageHandled)
             return true;
-        }
 
         soapMessageContext.put("messageHandled", true);
 
@@ -55,19 +43,21 @@ public class LogHandler implements SOAPHandler<SOAPMessageContext> {
             soapMessageContext.getMessage().writeTo(outputStream);
             final String callerId = (String) soapMessageContext.getOrDefault("callerId", "null");
 
-            final LoggingHelper loggingHelper = LoggingHelper.getInstance();
+            LoggingHelper loggingHelper = LoggingHelper.getInstance();
             if (callerId.equals("null")) {
-                SOAPFault customFault = soapFactory.createFault();
-                customFault.setFaultCode("InvalidRequest");
-                customFault.setFaultString("API key is invalid.");
-                loggingHelper.log(outputStream.toString(), address,
-                        soapBody.getChildNodes().item(1).getNodeName(), callerId, "invalid api key");
+                String requestedServiceName = Optional.of(soapBody.getChildNodes().item(1))
+                        .map(Node::getNodeName)
+                        .orElse("");
 
-                throw new SOAPFaultException(customFault);
+                loggingHelper.log(outputStream.toString(), address, requestedServiceName,
+                        callerId, "invalid api key");
+
+                SoapFaultHelper.throwFault("InvalidRequest","API key is invalid.");
             }
 
             loggingHelper.log(outputStream.toString(), address,
                     soapBody.getChildNodes().item(1).getNodeName(), callerId, "");
+
         } catch (SOAPException | IOException ignored) {
         }
 
diff --git a/src/main/java/com/kms/handler/helper/SoapFaultHelper.java b/src/main/java/com/kms/handler/helper/SoapFaultHelper.java
new file mode 100644
index 0000000..41e459c
--- /dev/null
+++ b/src/main/java/com/kms/handler/helper/SoapFaultHelper.java
@@ -0,0 +1,32 @@
+package com.kms.handler.helper;
+
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPFactory;
+import javax.xml.soap.SOAPFault;
+import javax.xml.ws.soap.SOAPFaultException;
+
+public class SoapFaultHelper {
+
+    private static final SOAPFactory soapFactory;
+
+    static {
+        try {
+            soapFactory = SOAPFactory.newInstance();
+        } catch (SOAPException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    public static void throwFault(String faultCode, String faultString) {
+        try {
+            SOAPFault customFault = soapFactory.createFault();
+            customFault.setFaultCode(faultCode);
+            customFault.setFaultString(faultString);
+
+            throw new SOAPFaultException(customFault);
+        } catch (SOAPException ignored) {
+        }
+
+    }
+
+}
-- 
GitLab