From 9bf05da49ac66d4401adf98c149a06e9255dc17a Mon Sep 17 00:00:00 2001 From: "semin.baek" Date: Thu, 21 Aug 2025 20:31:53 +0900 Subject: [PATCH] =?UTF-8?q?=EC=97=90=EC=9D=B4=EC=A0=84=ED=8A=B8=20?= =?UTF-8?q?=EC=A0=95=EB=B3=B4=20=EC=88=98=EC=8B=A0=20=EC=A7=84=ED=96=89?= =?UTF-8?q?=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/database/create-database.sql | 45 +++++++--- src/database/create-initial-data.sql | 13 +++ .../dfx/agent/config/AgentConfigDto.java | 6 +- .../dfx/agent/listener/dto/CommandDto.java | 1 + .../app/agent/DfxAgentInfoController.java | 48 ++++++++++ .../app/agent/service/DfxAgentInfoDto.java | 21 +++++ .../app/agent/service/DfxAgentInfoMapper.java | 17 ++++ .../agent/service/DfxAgentInfoService.java | 49 +++++++++++ .../app/agent/service/DfxDropboxDto.java | 18 ++++ .../communicate/service/ListenerService.java | 31 ++++++- .../framework/dto/ExceptionResponseDto.java | 13 +++ .../framework/support/ResponseUtils.java | 10 +++ src/main/resources/application.yml | 2 +- .../resources/mapper/app/dfx-agent-config.xml | 87 +++++++++++++++++++ 14 files changed, 344 insertions(+), 17 deletions(-) create mode 100644 src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/DfxAgentInfoController.java create mode 100644 src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxAgentInfoDto.java create mode 100644 src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxAgentInfoMapper.java create mode 100644 src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxAgentInfoService.java create mode 100644 src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxDropboxDto.java create mode 100644 src/main/java/com/bsmlab/dfx/dfxconsole/framework/dto/ExceptionResponseDto.java create mode 100644 src/main/java/com/bsmlab/dfx/dfxconsole/framework/support/ResponseUtils.java create mode 100644 src/main/resources/mapper/app/dfx-agent-config.xml diff --git a/src/database/create-database.sql b/src/database/create-database.sql index 118813b..dc153da 100644 --- a/src/database/create-database.sql +++ b/src/database/create-database.sql @@ -29,26 +29,45 @@ COMMENT ON COLUMN TB_DFX_USER.USER_REGISTER_TIME IS '가입일시'; COMMENT ON COLUMN TB_DFX_USER.LAST_LOGIN_TIME IS '마지막 로그인 일시'; CREATE UNIQUE INDEX IX_DFX_USER_01 ON TB_DFX_USER(USER_EMAIL); -CREATE TABLE TB_DFX_AGENT_CONFIG ( + +CREATE TABLE TB_DFX_AGENT_INFO ( AGENT_ID VARCHAR(256) NOT NULL - , HOST_NAME VARCHAR(256) + , HOST_NAME VARCHAR(256) NOT NULL , LISTEN_PORT DECIMAL(5) NOT NULL , DESCRIPTION VARCHAR(2048) , POSTMAN_COUNT DECIMAL(9) , DROPBOX_COUNT DECIMAL(9) , STATUS_CODE VARCHAR(64) NOT NULL , LAST_STATUS_TS TIMESTAMP NOT NULL - , SETTINGS_DATA CLOB + , SETTINGS_DATA TEXT , CONSTRAINT PK_DFX_AGENT_CONFIG PRIMARY KEY (AGENT_ID) ); -COMMENT ON TABLE TB_DFX_AGENT_CONFIG IS '에이전트 설정'; -COMMENT ON COLUMN TB_DFX_AGENT_CONFIG.AGENT_ID IS '에이전트ID'; -COMMENT ON COLUMN TB_DFX_AGENT_CONFIG.HOST_NAME IS '에이전트가 설치된 HOSTNAME 또는 IP'; -COMMENT ON COLUMN TB_DFX_AGENT_CONFIG.LISTEN_PORT IS '에이전트 수신 포트'; -COMMENT ON COLUMN TB_DFX_AGENT_CONFIG.DESCRIPTION IS '에이전트 설명'; -COMMENT ON COLUMN TB_DFX_AGENT_CONFIG.POSTMAN_COUNT IS 'POSTMAN 갯수'; -COMMENT ON COLUMN TB_DFX_AGENT_CONFIG.DROPBOX_COUNT IS 'DROPBOX 갯수'; -COMMENT ON COLUMN TB_DFX_AGENT_CONFIG.STATUS_CODE IS '상태코드 CODE_GROUP: AGENT_STATUS_CODE'; -COMMENT ON COLUMN TB_DFX_AGENT_CONFIG.LAST_STATUS_TS IS '최종상태확인 시간'; -COMMENT ON COLUMN TB_DFX_AGENT_CONFIG.SETTINGS_DATA IS '에이전스 설정 파일 내용'; +COMMENT ON TABLE TB_DFX_AGENT_INFO IS '에이전트 설정'; +COMMENT ON COLUMN TB_DFX_AGENT_INFO.AGENT_ID IS '에이전트ID'; +COMMENT ON COLUMN TB_DFX_AGENT_INFO.HOST_NAME IS '에이전트가 설치된 HOSTNAME 또는 IP'; +COMMENT ON COLUMN TB_DFX_AGENT_INFO.LISTEN_PORT IS '에이전트 수신 포트'; +COMMENT ON COLUMN TB_DFX_AGENT_INFO.DESCRIPTION IS '에이전트 설명'; +COMMENT ON COLUMN TB_DFX_AGENT_INFO.POSTMAN_COUNT IS 'POSTMAN 갯수'; +COMMENT ON COLUMN TB_DFX_AGENT_INFO.DROPBOX_COUNT IS 'DROPBOX 갯수'; +COMMENT ON COLUMN TB_DFX_AGENT_INFO.STATUS_CODE IS '상태코드 CODE_GROUP: AGENT_STATUS_CODE'; +COMMENT ON COLUMN TB_DFX_AGENT_INFO.LAST_STATUS_TS IS '최종상태확인 시간'; +COMMENT ON COLUMN TB_DFX_AGENT_INFO.SETTINGS_DATA IS '에이전스 설정 파일 내용'; + + +CREATE TABLE TB_DFX_DROPBOX ( + AGENT_ID VARCHAR(256) NOT NULL + , DROPBOX_ID VARCHAR(256) NOT NULL + , TASK_TYPE VARCHAR(64) NOT NULL + , DATA_SOURCE_ID VARCHAR(256) + , SQL_ID VARCHAR(256) + , DESCRIPTION VARCHAR(2048) + , CONSTRAINT PK_DFX_DROPBOX PRIMARY KEY (AGENT_ID, DROPBOX_ID) +); +COMMENT ON TABLE TB_DFX_DROPBOX IS 'DROPBOX 설정'; +COMMENT ON COLUMN TB_DFX_DROPBOX.AGENT_ID IS '에이전트ID'; +COMMENT ON COLUMN TB_DFX_DROPBOX.DROPBOX_ID IS 'DROPBOX ID'; +COMMENT ON COLUMN TB_DFX_DROPBOX.TASK_TYPE IS 'CODE DROPBOX_TASK_TYPE'; +COMMENT ON COLUMN TB_DFX_DROPBOX.DATA_SOURCE_ID IS 'DATA SOURCE ID'; +COMMENT ON COLUMN TB_DFX_DROPBOX.SQL_ID IS 'SQL_ID'; +COMMENT ON COLUMN TB_DFX_DROPBOX.DESCRIPTION IS 'DESCRIPTION'; diff --git a/src/database/create-initial-data.sql b/src/database/create-initial-data.sql index 2b77d6f..1d386da 100644 --- a/src/database/create-initial-data.sql +++ b/src/database/create-initial-data.sql @@ -11,4 +11,17 @@ VALUES ( 'AGENT_STATUS_CODE', 'STATUS_UNKNOWN', '확인불가', '확인불가', 2, NULL, 'Y' ); +INSERT INTO TB_CODE ( + CODE_GROUP, CODE_NAME, CODE_VALUE, CODE_DESCRIPTION, ORDER_NO, PARENT_CODE_NAME, USE_YN +) +VALUES ( + 'DROPBOX_TASK_TYPE', 'RECEIVE_DB_TO_DB_SAVE', '메시지 수신 후 DB 저장', '메시지를 수신하여 DB에 저장한다.', 1, NULL, 'Y' +); +INSERT INTO TB_CODE ( + CODE_GROUP, CODE_NAME, CODE_VALUE, CODE_DESCRIPTION, ORDER_NO, PARENT_CODE_NAME, USE_YN +) +VALUES ( + 'DROPBOX_TASK_TYPE', 'RECEIVE_FILE', '파일 수신 후 파일 저장', '파일을 수신하여 파일로 저장한다.', 2, NULL, 'Y' +); + INSERT INTO TB_DFX_USER (USER_UUID, USER_EMAIL, USER_PASSWORD, USER_NICK) VALUES ('dad9f3b6-45bf-49f9-85c5-1a83810d921c', 'smbaek@bsm-lab.com', 'qortpals1!', '백세민'); diff --git a/src/main/java/com/bsmlab/dfx/agent/config/AgentConfigDto.java b/src/main/java/com/bsmlab/dfx/agent/config/AgentConfigDto.java index b07b4d2..4810035 100644 --- a/src/main/java/com/bsmlab/dfx/agent/config/AgentConfigDto.java +++ b/src/main/java/com/bsmlab/dfx/agent/config/AgentConfigDto.java @@ -9,6 +9,7 @@ import java.util.Map; public class AgentConfigDto { private String description; private String myHostId; + private String myHostName; private int myListenPort; private List knownAgentList; private StatusChecker statusChecker; @@ -26,11 +27,15 @@ public class AgentConfigDto { private String hostName; private int listenPort; private List dropBoxIdList; + private List routingHostIdList; } @Data public static class StatusChecker { private String cron; + private String consoleHostName; + private int consoleListenPort; + private boolean consoleSslEnabled; } @Data @@ -81,7 +86,6 @@ public class AgentConfigDto { private PostmanMessage message; private String recipientHostId; private String recipientDropBoxId; - private List routingHostIdList; private String description; } diff --git a/src/main/java/com/bsmlab/dfx/agent/listener/dto/CommandDto.java b/src/main/java/com/bsmlab/dfx/agent/listener/dto/CommandDto.java index 3a0a0b3..783dc9d 100644 --- a/src/main/java/com/bsmlab/dfx/agent/listener/dto/CommandDto.java +++ b/src/main/java/com/bsmlab/dfx/agent/listener/dto/CommandDto.java @@ -10,6 +10,7 @@ import lombok.*; public class CommandDto { private CommandType commandType; private String messageUuid; + private String data; public static enum CommandType { ALIVE, diff --git a/src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/DfxAgentInfoController.java b/src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/DfxAgentInfoController.java new file mode 100644 index 0000000..6b0888d --- /dev/null +++ b/src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/DfxAgentInfoController.java @@ -0,0 +1,48 @@ +package com.bsmlab.dfx.dfxconsole.app.agent; + +import com.bsmlab.dfx.agent.config.AgentConfigDto; +import com.bsmlab.dfx.dfxconsole.app.agent.service.DfxAgentInfoDto; +import com.bsmlab.dfx.dfxconsole.app.agent.service.DfxAgentInfoService; +import com.bsmlab.dfx.dfxconsole.framework.support.ResponseUtils; +import com.fasterxml.jackson.core.JsonProcessingException; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Map; + +@RestController +@RequiredArgsConstructor +@Slf4j +public class DfxAgentInfoController { + private final DfxAgentInfoService dfxAgentInfoService; + + @PostMapping("/app-api/agent/getAgentInfoDtoList") + public ResponseEntity> agentConfigDtoList() { + List dfxAgentInfoDtoList = dfxAgentInfoService.getDfxAgentInfoDtoList(); + return ResponseEntity.ok().body(dfxAgentInfoDtoList); + } + + @PostMapping("/app-api/agent/getAgentInfoDto") + public ResponseEntity getAgentInfoDto(@RequestBody Map paramMap) { + String agentId = paramMap.get("agentId"); + DfxAgentInfoDto dfxAgentInfoDto = dfxAgentInfoService.getDfxAgentInfoDto(agentId); + return ResponseEntity.ok().body(dfxAgentInfoDto); + } + + @PostMapping("/app-api/agent/getAgentConfigDto") + public ResponseEntity getAgentConfigDto(@RequestBody Map paramMap) { + String agentId = paramMap.get("agentId"); + AgentConfigDto agentConfigDto = null; + try { + agentConfigDto = dfxAgentInfoService.getDfxAgentConfigDto(agentId); + return ResponseEntity.ok().body(agentConfigDto); + } catch (JsonProcessingException e) { + return ResponseEntity.internalServerError().body(ResponseUtils.toExceptionResponseDto(e)); + } + } +} diff --git a/src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxAgentInfoDto.java b/src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxAgentInfoDto.java new file mode 100644 index 0000000..8f567fb --- /dev/null +++ b/src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxAgentInfoDto.java @@ -0,0 +1,21 @@ +package com.bsmlab.dfx.dfxconsole.app.agent.service; + +import lombok.*; + +@NoArgsConstructor +@AllArgsConstructor +@Getter +@Setter +@ToString +@Builder +public class DfxAgentInfoDto { + private String agentId; + private String hostName; + private int listenPort; + private int postmanCount; + private int dropboxCount; + private String statusCode; + private long lastStatusTs; + private String settingsData; + private String lastStatusTimeString; +} diff --git a/src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxAgentInfoMapper.java b/src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxAgentInfoMapper.java new file mode 100644 index 0000000..8fae2be --- /dev/null +++ b/src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxAgentInfoMapper.java @@ -0,0 +1,17 @@ +package com.bsmlab.dfx.dfxconsole.app.agent.service; + +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +@Mapper +public interface DfxAgentInfoMapper { + List selectDfxAgentInfoList(); + DfxAgentInfoDto selectDfxAgentInfoByAgentId(DfxAgentInfoDto dfxAgentInfoDto); + void insertDfxAgentInfo(DfxAgentInfoDto dfxAgentInfoDto); + int updateDfxAgentInfo(DfxAgentInfoDto dfxAgentInfoDto); + List selectDfxDropboxList(); + DfxDropboxDto selectDfxDropboxByAgentIdAndDropBoxId(DfxDropboxDto dfxDropboxDto); + void insertDfxDropbox(DfxDropboxDto dfxDropboxDto); + int deleteDfxDropboxByAgentIdAndDropboxId(DfxDropboxDto dfxDropboxDto); +} diff --git a/src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxAgentInfoService.java b/src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxAgentInfoService.java new file mode 100644 index 0000000..cbfad11 --- /dev/null +++ b/src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxAgentInfoService.java @@ -0,0 +1,49 @@ +package com.bsmlab.dfx.dfxconsole.app.agent.service; + +import com.bsmlab.dfx.agent.config.AgentConfigDto; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Slf4j +@RequiredArgsConstructor +@Service +public class DfxAgentInfoService { + private final DfxAgentInfoMapper dfxAgentInfoMapper; + + public List getDfxAgentInfoDtoList() { + List dfxAgentInfoDtoList = null; + dfxAgentInfoDtoList = dfxAgentInfoMapper.selectDfxAgentInfoList(); + return dfxAgentInfoDtoList; + } + + public DfxAgentInfoDto getDfxAgentInfoDto(String agentId) { + DfxAgentInfoDto dfxAgentInfoDto = null; + dfxAgentInfoDto = dfxAgentInfoMapper.selectDfxAgentInfoByAgentId(DfxAgentInfoDto.builder().agentId(agentId).build()); + return dfxAgentInfoDto; + } + + public void saveDfxAgentInfoDto(DfxAgentInfoDto dfxAgentInfoDto) { + DfxAgentInfoDto existedDfxAgentInfoDto = dfxAgentInfoMapper.selectDfxAgentInfoByAgentId(dfxAgentInfoDto); + if(existedDfxAgentInfoDto != null && StringUtils.isNotEmpty(existedDfxAgentInfoDto.getAgentId())) { + dfxAgentInfoMapper.updateDfxAgentInfo(dfxAgentInfoDto); + } + else { + dfxAgentInfoMapper.insertDfxAgentInfo(dfxAgentInfoDto); + } + } + + public AgentConfigDto getDfxAgentConfigDto(String agentId) throws JsonProcessingException { + DfxAgentInfoDto dfxAgentInfoDto = null; + dfxAgentInfoDto = dfxAgentInfoMapper.selectDfxAgentInfoByAgentId(DfxAgentInfoDto.builder().agentId(agentId).build()); + ObjectMapper objectMapper = new ObjectMapper(); + AgentConfigDto agentConfigDto = objectMapper.readValue(dfxAgentInfoDto.getSettingsData(), new TypeReference() {}); + return agentConfigDto; + } +} diff --git a/src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxDropboxDto.java b/src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxDropboxDto.java new file mode 100644 index 0000000..a22c1fe --- /dev/null +++ b/src/main/java/com/bsmlab/dfx/dfxconsole/app/agent/service/DfxDropboxDto.java @@ -0,0 +1,18 @@ +package com.bsmlab.dfx.dfxconsole.app.agent.service; + +import lombok.*; + +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Getter +@Setter +@ToString +public class DfxDropboxDto { + private String agentId; + private String dropboxId; + private String taskType; + private String dataSourceId; + private String sqlId; + private String description; +} diff --git a/src/main/java/com/bsmlab/dfx/dfxconsole/app/communicate/service/ListenerService.java b/src/main/java/com/bsmlab/dfx/dfxconsole/app/communicate/service/ListenerService.java index dca2ac1..1611391 100644 --- a/src/main/java/com/bsmlab/dfx/dfxconsole/app/communicate/service/ListenerService.java +++ b/src/main/java/com/bsmlab/dfx/dfxconsole/app/communicate/service/ListenerService.java @@ -1,18 +1,27 @@ package com.bsmlab.dfx.dfxconsole.app.communicate.service; +import com.bsmlab.dfx.agent.config.AgentConfigDto; import com.bsmlab.dfx.agent.listener.dto.AckDto; import com.bsmlab.dfx.agent.listener.dto.CommandDto; import com.bsmlab.dfx.agent.support.MessageUtils; import com.bsmlab.dfx.agent.support.exception.IllegalMessageException; import com.bsmlab.dfx.agent.support.exception.NullMessageException; +import com.bsmlab.dfx.dfxconsole.app.agent.service.DfxAgentInfoDto; +import com.bsmlab.dfx.dfxconsole.app.agent.service.DfxAgentInfoService; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @Service @Slf4j @RequiredArgsConstructor public class ListenerService { + private final DfxAgentInfoService dfxAgentInfoService; + public AckDto receiveCommand(String messageJsonString) { AckDto ackDto; CommandDto commandDto; @@ -20,13 +29,31 @@ public class ListenerService { commandDto = MessageUtils.toCommandDto(messageJsonString); String resultText = null; if(CommandDto.CommandType.ALIVE == commandDto.getCommandType()) { - resultText = "ALIVE"; + resultText = CommandDto.CommandType.ALIVE.name(); + } + else if(CommandDto.CommandType.INFORMATION == commandDto.getCommandType()) { + this.saveAgentInformation(commandDto); + resultText = CommandDto.CommandType.INFORMATION.name(); } ackDto = AckDto.builder().result(AckDto.ResultType.PROCESS_SUCCESS).messageUuid(commandDto.getMessageUuid()).resultText(resultText).build(); } - catch (IllegalMessageException | NullMessageException e) { + catch (IllegalMessageException | NullMessageException | JsonProcessingException e) { ackDto = AckDto.builder().result(AckDto.ResultType.RECEIVE_FAIL).resultText(e.getLocalizedMessage()).messageUuid("").build(); } return ackDto; } + + public void saveAgentInformation(CommandDto commandDto) throws JsonProcessingException { + ObjectMapper objectMapper = new ObjectMapper(); + AgentConfigDto agentConfigDto = objectMapper.readValue(commandDto.getData(), new TypeReference(){}); + if(agentConfigDto != null && StringUtils.isNotEmpty(agentConfigDto.getMyHostId())) { + DfxAgentInfoDto dfxAgentInfoDto = DfxAgentInfoDto.builder() + .agentId(agentConfigDto.getMyHostId()).hostName(agentConfigDto.getMyHostName()).listenPort(agentConfigDto.getMyListenPort()) + .postmanCount(agentConfigDto.getPostmanConfig().getPostmanList().size()) + .dropboxCount(agentConfigDto.getDropBoxConfig().getDropBoxList().size()) + .settingsData(commandDto.getData()).lastStatusTs(System.currentTimeMillis()).statusCode("STATUS_OK") + .build(); + dfxAgentInfoService.saveDfxAgentInfoDto(dfxAgentInfoDto); + } + } } diff --git a/src/main/java/com/bsmlab/dfx/dfxconsole/framework/dto/ExceptionResponseDto.java b/src/main/java/com/bsmlab/dfx/dfxconsole/framework/dto/ExceptionResponseDto.java new file mode 100644 index 0000000..c6b9150 --- /dev/null +++ b/src/main/java/com/bsmlab/dfx/dfxconsole/framework/dto/ExceptionResponseDto.java @@ -0,0 +1,13 @@ +package com.bsmlab.dfx.dfxconsole.framework.dto; + +import lombok.*; + +@NoArgsConstructor +@AllArgsConstructor +@Builder +@Getter +@Setter +@ToString +public class ExceptionResponseDto { + private String message; +} diff --git a/src/main/java/com/bsmlab/dfx/dfxconsole/framework/support/ResponseUtils.java b/src/main/java/com/bsmlab/dfx/dfxconsole/framework/support/ResponseUtils.java new file mode 100644 index 0000000..c893139 --- /dev/null +++ b/src/main/java/com/bsmlab/dfx/dfxconsole/framework/support/ResponseUtils.java @@ -0,0 +1,10 @@ +package com.bsmlab.dfx.dfxconsole.framework.support; + +import com.bsmlab.dfx.dfxconsole.framework.dto.ExceptionResponseDto; + +public class ResponseUtils { + public static ExceptionResponseDto toExceptionResponseDto(Exception e) { + ExceptionResponseDto exceptionResponseDto = ExceptionResponseDto.builder().message(e.getMessage()).build(); + return exceptionResponseDto; + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index f0a513e..f826287 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -37,7 +37,7 @@ server: include-exception: true include-message: always include-stacktrace: always - port: 9443 + port: 17443 ssl: enabled: true certificate: ${user.home}/.vite-plugin-mkcert/bsm-lab.dev.pem diff --git a/src/main/resources/mapper/app/dfx-agent-config.xml b/src/main/resources/mapper/app/dfx-agent-config.xml new file mode 100644 index 0000000..b2facf6 --- /dev/null +++ b/src/main/resources/mapper/app/dfx-agent-config.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +