From 11789e861b076ca5047f7ea2906c4931d6ee742f Mon Sep 17 00:00:00 2001 From: Rinjae Date: Sat, 17 Jan 2026 19:33:57 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9D=B8=EC=A6=9D=EC=A0=95=EB=B3=B4=20->=20?= =?UTF-8?q?=EA=B0=9C=EB=B0=9C=EC=9E=90=ED=8F=AC=ED=83=88=20=EC=A0=95?= =?UTF-8?q?=EB=B3=B4=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../onl/admin/authserver/clientManDetail.jsp | 52 +++++ .../approval/credential/CredentialUI.java | 2 + .../authserver/client/ClientController.java | 33 ++++ .../authserver/client/ClientManService.java | 181 +++++++++++++++++- .../manage/authserver/client/SyncResult.java | 68 +++++++ 5 files changed, 335 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/eactive/eai/rms/onl/manage/authserver/client/SyncResult.java diff --git a/WebContent/jsp/onl/admin/authserver/clientManDetail.jsp b/WebContent/jsp/onl/admin/authserver/clientManDetail.jsp index 38aaca6..922b23b 100644 --- a/WebContent/jsp/onl/admin/authserver/clientManDetail.jsp +++ b/WebContent/jsp/onl/admin/authserver/clientManDetail.jsp @@ -285,6 +285,56 @@ } }); + $("#btn_sync_portal").click(function() { + var clientId = $('input[name=clientId]').val(); + var clientName = $('input[name=clientName]').val(); + + if (!clientId) { + alert("Client ID가 없습니다."); + return; + } + + if (!confirm("'" + clientName + "'의 개발자포탈 정보를 반영하시겠습니까?\n\n" + + "APIGW 인증 정보를 포탈 DB에 반영합니다. (없으면 생성, 있으면 업데이트)")) { + return; + } + + $.ajax({ + type: "POST", + url: url, + dataType: "json", + data: { + cmd: 'SYNC_PORTAL', + clientId: clientId + }, + success: function(response) { + if (response.success) { + var msg = "포탈 정보 반영 완료"; + + if (response.action === 'INSERTED') { + msg = "포탈 정보를 새로 생성했습니다."; + } else if (response.action === 'UPDATED') { + msg = "포탈 정보를 업데이트했습니다."; + } else if (response.action === 'SKIPPED_NO_ORG') { + msg = "반영을 건너뜁니다.\n법인(orgId)이 설정되지 않은 클라이언트입니다."; + } else if (response.action === 'SKIPPED_INVALID_API') { + msg = "반영을 건너뜁니다.\n존재하지 않는 API가 포함되어 있습니다.\n\n"; + if (response.invalidApis && response.invalidApis.length > 0) { + msg += "누락된 API: " + response.invalidApis.join(", "); + } + } + + alert(msg); + } else { + alert("반영 실패\n\n" + response.message); + } + }, + error: function(xhr) { + alert("반영 중 오류가 발생했습니다."); + } + }); + }); + $("#btn_popup_api").click(function () { const args = {}; const url2 = api_url_view += "?cmd=POPUP"; @@ -417,6 +467,8 @@
+