feat: 암호화 모듈 저장/삭제 후 online 서버 broadcast 결과 alert 출력

- CryptoModuleConfigManController: INSERT/UPDATE/DELETE 모두 broadcast()
  결과(CommandResult)를 broadcastResult 필드로 응답에 포함
- cryptoModuleManDetail.jsp: 저장/삭제 success 콜백에서 broadcastResult를
  alert 메시지에 추가 출력 (서버명=결과 형태)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
curry772
2026-05-07 15:35:46 +09:00
parent 49fdc3b577
commit 3d916eda53
2 changed files with 28 additions and 11 deletions
@@ -166,9 +166,14 @@ $(document).ready(function() {
$.ajax({ $.ajax({
type: 'POST', type: 'POST',
url: url, url: url,
dataType: 'json',
data: postData, data: postData,
success: function() { success: function(data) {
alert('<%= localeMessage.getString("common.saveMsg") %>'); var msg = '<%= localeMessage.getString("common.saveMsg") %>';
if (data && data.broadcastResult) {
msg += '\n\n[서버 반영 결과]\n' + data.broadcastResult;
}
alert(msg);
goNav(returnUrl); goNav(returnUrl);
}, },
error: function(e) { error: function(e) {
@@ -182,9 +187,14 @@ $(document).ready(function() {
$.ajax({ $.ajax({
type: 'POST', type: 'POST',
url: url, url: url,
dataType: 'json',
data: { cmd: 'DELETE', cryptoId: $('input[name=cryptoId]').val() }, data: { cmd: 'DELETE', cryptoId: $('input[name=cryptoId]').val() },
success: function() { success: function(data) {
alert('<%= localeMessage.getString("common.deleteMsg") %>'); var msg = '<%= localeMessage.getString("common.deleteMsg") %>';
if (data && data.broadcastResult) {
msg += '\n\n[서버 반영 결과]\n' + data.broadcastResult;
}
alert(msg);
goNav(returnUrl); goNav(returnUrl);
}, },
error: function(e) { error: function(e) {
@@ -21,6 +21,7 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import com.eactive.eai.agent.command.CommandResult;
import com.eactive.eai.agent.command.CommonCommand; import com.eactive.eai.agent.command.CommonCommand;
import com.eactive.eai.rms.common.base.OnlBaseAnnotationController; import com.eactive.eai.rms.common.base.OnlBaseAnnotationController;
import com.eactive.eai.rms.common.login.SessionManager; import com.eactive.eai.rms.common.login.SessionManager;
@@ -77,12 +78,14 @@ public class CryptoModuleConfigManController extends OnlBaseAnnotationController
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(errors); return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(errors);
} }
String cryptoId = service.insert(ui, SessionManager.getUserId(request)); String cryptoId = service.insert(ui, SessionManager.getUserId(request));
CommonCommand.builder() CommandResult broadcastResult = CommonCommand.builder()
.name(RELOAD_CRYPTO_MODULE_COMMAND) .name(RELOAD_CRYPTO_MODULE_COMMAND)
.args(cryptoId) .args(cryptoId)
.build() .build()
.broadcast(agentUtilService); .broadcast(agentUtilService);
return ResponseEntity.ok().build(); Map<String, String> body = new HashMap<>();
body.put("broadcastResult", broadcastResult.getMessage(true));
return ResponseEntity.ok(body);
} }
@PostMapping(value = "/onl/admin/security/cryptoModuleMan.json", params = "cmd=UPDATE") @PostMapping(value = "/onl/admin/security/cryptoModuleMan.json", params = "cmd=UPDATE")
@@ -96,23 +99,27 @@ public class CryptoModuleConfigManController extends OnlBaseAnnotationController
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(errors); return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(errors);
} }
service.update(ui, SessionManager.getUserId(request)); service.update(ui, SessionManager.getUserId(request));
CommonCommand.builder() CommandResult broadcastResult = CommonCommand.builder()
.name(RELOAD_CRYPTO_MODULE_COMMAND) .name(RELOAD_CRYPTO_MODULE_COMMAND)
.args(ui.getCryptoId()) .args(ui.getCryptoId())
.build() .build()
.broadcast(agentUtilService); .broadcast(agentUtilService);
return ResponseEntity.ok().build(); Map<String, String> body = new HashMap<>();
body.put("broadcastResult", broadcastResult.getMessage(true));
return ResponseEntity.ok(body);
} }
@PostMapping(value = "/onl/admin/security/cryptoModuleMan.json", params = "cmd=DELETE") @PostMapping(value = "/onl/admin/security/cryptoModuleMan.json", params = "cmd=DELETE")
public ResponseEntity<Void> delete(String cryptoId) { public ResponseEntity<Map<String, String>> delete(String cryptoId) {
service.delete(cryptoId); service.delete(cryptoId);
CommonCommand.builder() CommandResult broadcastResult = CommonCommand.builder()
.name(RELOAD_CRYPTO_MODULE_COMMAND) .name(RELOAD_CRYPTO_MODULE_COMMAND)
.args(cryptoId) .args(cryptoId)
.build() .build()
.broadcast(agentUtilService); .broadcast(agentUtilService);
return ResponseEntity.ok().build(); Map<String, String> body = new HashMap<>();
body.put("broadcastResult", broadcastResult.getMessage(true));
return ResponseEntity.ok(body);
} }
} }