diff --git a/soap/src/main/java/com/sayit/service/SubsServiceImpl.java b/soap/src/main/java/com/sayit/service/SubsServiceImpl.java
index 36af8a925450d2750fd967a9c63817eb7d5bce50..1f593f05df7999522ac47566c4d5a4619f399416 100644
--- a/soap/src/main/java/com/sayit/service/SubsServiceImpl.java
+++ b/soap/src/main/java/com/sayit/service/SubsServiceImpl.java
@@ -2,40 +2,21 @@ package com.sayit.service;
 
 import com.sayit.core.Database;
 
-
-import javax.annotation.Resource;
-import javax.jws.WebMethod;
 import javax.jws.WebService;
-import javax.xml.ws.WebServiceContext;
-import javax.xml.ws.handler.MessageContext;
-import javax.xml.ws.spi.http.HttpExchange;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.Statement;
-import java.util.Arrays;
 
-@WebService
-public class SubsServiceImpl implements SubsService{
 
-//     @Resource
-//     public WebServiceContext wsContext;
-//
-//     @WebMethod
-//     public Boolean validateAPIKey(){
-//         String[] API_KEYS = {"soap"};
-//         MessageContext context = wsContext.getMessageContext();
-//         HttpExchange exchange = (HttpExchange) context.get("com.sun.xml.internal.ws.http.exchange");
-//         String apiKey = exchange.getRequestHeaders().getFirst("X-API-KEY");
-//         if (Arrays.asList(API_KEYS).contains(apiKey)) {
-//             return true;
-//         } else {
-//             return false;
-//         }
-//     }
+@WebService
+public class SubsServiceImpl extends Services implements SubsService {
 
     @Override
     public String newSubs(int user_id) {
+        if (!validateKey()) {
+            return "invalid key";
+        }
         Database db = new Database();
         Connection conn = db.getConnection();
 
@@ -47,6 +28,7 @@ public class SubsServiceImpl implements SubsService{
                 ResultSet result = checkStmt.executeQuery();
 
                 if (result.next()) {
+                    log("subscriber already exists");
                     return "subscriber already exists";
                 } else {
                     // Gunakan PreparedStatement untuk menghindari injeksi SQL
@@ -54,6 +36,7 @@ public class SubsServiceImpl implements SubsService{
                     try (PreparedStatement insertStmt = conn.prepareStatement(insertQuery)) {
                         insertStmt.setInt(1, user_id);
                         insertStmt.executeUpdate();
+                        log("add new subs success");
                         return "success";
                     }
                 }
@@ -61,6 +44,7 @@ public class SubsServiceImpl implements SubsService{
         } catch (Exception e) {
             // Tambahkan penanganan eksepsi yang lebih baik, misalnya mencetak jejak eksepsi
             e.printStackTrace();
+            log("add new subs failed");
             return "failed";
         } finally {
             db.closeConnection();
@@ -70,6 +54,9 @@ public class SubsServiceImpl implements SubsService{
     @Override
     public String getSubs(
             int user_id){
+        if (!validateKey()) {
+            return "invalid key";
+        }
         Database db = new Database();
         Connection conn = db.getConnection();
         try {
@@ -79,11 +66,13 @@ public class SubsServiceImpl implements SubsService{
             if (result.next()) {
                 return result.getString("user_id") ;
             } else {
+                log("subscriber doesn't exist");
                 return "subscriber doesn't exist";
             }
         }
         catch (Exception e){
-            return "failed";
+            log("failed");
+            return "get subs failed";
         }
         finally {
             db.closeConnection();
@@ -92,6 +81,9 @@ public class SubsServiceImpl implements SubsService{
     @Override
     public String delSubs(
             int user_id){
+        if (!validateKey()) {
+            return "invalid key";
+        }
         Database db = new Database();
         Connection conn = db.getConnection();
         try {
@@ -101,12 +93,15 @@ public class SubsServiceImpl implements SubsService{
             if (result.next()) {
                 String query2 = "DELETE FROM subscription WHERE user_id = " + user_id ;
                 stmt.executeUpdate(query2);
+                log("del subs success");
                 return "success";
             } else {
+                log("subscriber doesn't exist");
                 return "subscriber doesn't exist";
             }
         }
         catch (Exception e){
+            log("del subs failed");
             return "failed";
         }
         finally {