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 {