docs: Add standard Javadoc comments to all Java source files
This commit is contained in:
103
AddJavadoc.java
Normal file
103
AddJavadoc.java
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
import java.io.*;
|
||||||
|
import java.nio.file.*;
|
||||||
|
import java.nio.file.attribute.BasicFileAttributes;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.regex.*;
|
||||||
|
|
||||||
|
public class AddJavadoc {
|
||||||
|
|
||||||
|
static final String ROOT_DIR = ".";
|
||||||
|
|
||||||
|
static final String TEMPLATE =
|
||||||
|
"/**\n" +
|
||||||
|
" * @package %s\n" +
|
||||||
|
" * @className %s\n" +
|
||||||
|
" * @description AX HUB 시스템 처리 클래스\n" +
|
||||||
|
" * @author 김형식\n" +
|
||||||
|
" * @create 2026.09.01\n" +
|
||||||
|
" * <pre>\n" +
|
||||||
|
" * ---------- 개정이력 ----------\n" +
|
||||||
|
" * 수정일 수정자 수정내용\n" +
|
||||||
|
" * ---------- -------- ---------------------------\n" +
|
||||||
|
" * 2026.09.01 김형식 최초생성\n" +
|
||||||
|
" * \n" +
|
||||||
|
" * </pre>\n" +
|
||||||
|
" */";
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
Files.walkFileTree(Paths.get(ROOT_DIR), new SimpleFileVisitor<Path>() {
|
||||||
|
@Override
|
||||||
|
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) {
|
||||||
|
String name = dir.getFileName().toString();
|
||||||
|
if (name.equals(".git") || name.equals("build") || name.equals(".gradle") || name.equals("scratch") || name.equals("out") || name.equals("bin")) {
|
||||||
|
return FileVisitResult.SKIP_SUBTREE;
|
||||||
|
}
|
||||||
|
return FileVisitResult.CONTINUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
|
||||||
|
if (file.toString().endsWith(".java") && !file.getFileName().toString().equals("AddJavadoc.java")) {
|
||||||
|
processJavaFile(file);
|
||||||
|
}
|
||||||
|
return FileVisitResult.CONTINUE;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
System.out.println("Done.");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void processJavaFile(Path file) throws IOException {
|
||||||
|
List<String> lines = Files.readAllLines(file);
|
||||||
|
String content = String.join("\n", lines);
|
||||||
|
|
||||||
|
if (content.contains("---------- 개정이력 ----------") || content.contains("@className")) {
|
||||||
|
System.out.println("Skipping (already has javadoc): " + file);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String packageName = "unknown";
|
||||||
|
String className = "unknown";
|
||||||
|
|
||||||
|
Matcher pkgMatcher = Pattern.compile("(?m)^\\s*package\\s+([\\w\\.]+)\\s*;").matcher(content);
|
||||||
|
if (pkgMatcher.find()) {
|
||||||
|
packageName = pkgMatcher.group(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
int classDeclIdx = -1;
|
||||||
|
for (int i = 0; i < lines.size(); i++) {
|
||||||
|
String line = lines.get(i);
|
||||||
|
Matcher classMatcher = Pattern.compile("^\\s*(?:public\\s+|protected\\s+|private\\s+|abstract\\s+|final\\s+|static\\s+)*(class|interface|enum|record)\\s+(\\w+)").matcher(line);
|
||||||
|
if (classMatcher.find()) {
|
||||||
|
classDeclIdx = i;
|
||||||
|
className = classMatcher.group(2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (classDeclIdx == -1) {
|
||||||
|
System.out.println("Skipping (no class declaration found): " + file);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int insertIdx = classDeclIdx;
|
||||||
|
for (int i = classDeclIdx - 1; i >= 0; i--) {
|
||||||
|
String line = lines.get(i).trim();
|
||||||
|
if (line.isEmpty()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (line.startsWith("@")) {
|
||||||
|
insertIdx = i;
|
||||||
|
} else if (line.startsWith("//") || line.startsWith("/*") || line.startsWith("*")) {
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String javadoc = String.format(TEMPLATE, packageName, className);
|
||||||
|
lines.add(insertIdx, javadoc);
|
||||||
|
|
||||||
|
Files.write(file, String.join("\n", lines).getBytes("UTF-8"));
|
||||||
|
System.out.println("Updated: " + file);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,6 +7,20 @@ import lombok.AllArgsConstructor;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.adapter.dto
|
||||||
|
* @className ErrorDetail
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
|||||||
@@ -3,6 +3,20 @@ package io.shinhanlife.axhub.biz.mcp.adapter.dto;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.adapter.dto
|
||||||
|
* @className JsonRpcRequest
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public class JsonRpcRequest {
|
public class JsonRpcRequest {
|
||||||
|
|||||||
@@ -5,6 +5,20 @@ import lombok.Getter;
|
|||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
// 2. 응답 DTO
|
// 2. 응답 DTO
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.adapter.dto
|
||||||
|
* @className JsonRpcResponse
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@JsonPropertyOrder({"jsonrpc", "result", "error", "id"})
|
@JsonPropertyOrder({"jsonrpc", "result", "error", "id"})
|
||||||
|
|||||||
@@ -10,6 +10,20 @@ import java.util.Map;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.adapter.dto
|
||||||
|
* @className Params
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@Builder
|
@Builder
|
||||||
|
|||||||
@@ -14,6 +14,20 @@ import java.util.Map;
|
|||||||
* Tool(Agent)의 명세 및 라우팅 정보를 담고 있는 메타데이터 클래스
|
* Tool(Agent)의 명세 및 라우팅 정보를 담고 있는 메타데이터 클래스
|
||||||
* Redis 레지스트리에 저장되며, Planner와 Router 간의 통신 객체(Plan)로 사용됩니다.
|
* Redis 레지스트리에 저장되며, Planner와 Router 간의 통신 객체(Plan)로 사용됩니다.
|
||||||
*/
|
*/
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.gateway.dto
|
||||||
|
* @className ToolMetadata
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
|||||||
@@ -4,6 +4,20 @@ import org.springframework.context.annotation.Configuration;
|
|||||||
import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
||||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.config
|
||||||
|
* @className CorsConfig
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
public class CorsConfig implements WebMvcConfigurer {
|
public class CorsConfig implements WebMvcConfigurer {
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,20 @@ import org.mybatis.spring.SqlSessionFactoryBean;
|
|||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.config
|
||||||
|
* @className MybatisConfig
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
public class MybatisConfig {
|
public class MybatisConfig {
|
||||||
|
|
||||||
@@ -16,4 +30,4 @@ public class MybatisConfig {
|
|||||||
sessionFactory.setDataSource(dataSource);
|
sessionFactory.setDataSource(dataSource);
|
||||||
return sessionFactory.getObject();
|
return sessionFactory.getObject();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3,6 +3,20 @@ package io.shinhanlife.axhub.common.config;
|
|||||||
import com.p6spy.engine.logging.Category;
|
import com.p6spy.engine.logging.Category;
|
||||||
import com.p6spy.engine.spy.appender.MessageFormattingStrategy;
|
import com.p6spy.engine.spy.appender.MessageFormattingStrategy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.config
|
||||||
|
* @className P6SpySqlFormatter
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
public class P6SpySqlFormatter implements MessageFormattingStrategy {
|
public class P6SpySqlFormatter implements MessageFormattingStrategy {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -16,6 +16,20 @@ import org.springframework.stereotype.Component;
|
|||||||
* 신한라이프 Glow Framework 개발표준정의서를 바탕으로 대내/대외망/EAI 통신을
|
* 신한라이프 Glow Framework 개발표준정의서를 바탕으로 대내/대외망/EAI 통신을
|
||||||
* MCP 툴에서 손쉽게 호출할 수 있도록 일원화한 컴포넌트입니다.
|
* MCP 툴에서 손쉽게 호출할 수 있도록 일원화한 컴포넌트입니다.
|
||||||
*/
|
*/
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.integration
|
||||||
|
* @className GlowIntegrationCall
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Component
|
@Component
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class GlowIntegrationCall {
|
public class GlowIntegrationCall {
|
||||||
@@ -88,4 +102,4 @@ public class GlowIntegrationCall {
|
|||||||
return mci.call(req, resBody);
|
return mci.call(req, resBody);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
@@ -15,6 +15,20 @@ import java.util.List;
|
|||||||
* Glow Framework 개발표준정의서(2.2.1 IO 작성) 규칙을 100% 준수한 샘플입니다.
|
* Glow Framework 개발표준정의서(2.2.1 IO 작성) 규칙을 100% 준수한 샘플입니다.
|
||||||
* 새로운 대외 통신 전문을 만들 때 이 파일을 복사해서 필드명과 길이만 수정하여 사용하세요.
|
* 새로운 대외 통신 전문을 만들 때 이 파일을 복사해서 필드명과 길이만 수정하여 사용하세요.
|
||||||
*/
|
*/
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.integration.dto
|
||||||
|
* @className SampleGlowMessage
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Builder
|
@Builder
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@@ -67,4 +81,4 @@ public class SampleGlowMessage {
|
|||||||
// @GlowMciFieldInfo(order = 4, length = 200)
|
// @GlowMciFieldInfo(order = 4, length = 200)
|
||||||
private String anxMsgCt;
|
private String anxMsgCt;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6,6 +6,20 @@ import org.springframework.cache.concurrent.ConcurrentMapCacheManager;
|
|||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.mcp.config
|
||||||
|
* @className CacheConfig
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableCaching
|
@EnableCaching
|
||||||
public class CacheConfig {
|
public class CacheConfig {
|
||||||
|
|||||||
@@ -7,6 +7,20 @@ import org.springframework.context.annotation.Bean;
|
|||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.context.annotation.Primary;
|
import org.springframework.context.annotation.Primary;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.mcp.config
|
||||||
|
* @className JacksonConfig
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
public class JacksonConfig {
|
public class JacksonConfig {
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,20 @@ import org.springframework.beans.factory.annotation.Value;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.mcp.config
|
||||||
|
* @className KafkaLocalConfig
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
public class KafkaLocalConfig {
|
public class KafkaLocalConfig {
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,20 @@ import io.swagger.v3.oas.models.security.SecurityScheme;
|
|||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.mcp.config
|
||||||
|
* @className SwaggerConfig
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
public class SwaggerConfig {
|
public class SwaggerConfig {
|
||||||
|
|
||||||
@@ -30,4 +44,4 @@ public class SwaggerConfig {
|
|||||||
.in(SecurityScheme.In.HEADER)
|
.in(SecurityScheme.In.HEADER)
|
||||||
.description("헤더에 API Key를 입력해주세요. (기본값: SHINHAN_MCP_SECRET_KEY_2026)")));
|
.description("헤더에 API Key를 입력해주세요. (기본값: SHINHAN_MCP_SECRET_KEY_2026)")));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -8,6 +8,20 @@ import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
|||||||
|
|
||||||
import io.shinhanlife.axhub.common.mcp.security.ApiKeyInterceptor;
|
import io.shinhanlife.axhub.common.mcp.security.ApiKeyInterceptor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.mcp.config
|
||||||
|
* @className WebConfig
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class WebConfig implements WebMvcConfigurer {
|
public class WebConfig implements WebMvcConfigurer {
|
||||||
|
|||||||
@@ -7,6 +7,20 @@ import org.springframework.http.ResponseEntity;
|
|||||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||||
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.mcp.exception
|
||||||
|
* @className GlobalExceptionHandler
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@RestControllerAdvice // 이 어노테이션이 전역 적용의 핵심입니다!
|
@RestControllerAdvice // 이 어노테이션이 전역 적용의 핵심입니다!
|
||||||
public class GlobalExceptionHandler {
|
public class GlobalExceptionHandler {
|
||||||
@@ -41,4 +55,4 @@ public class GlobalExceptionHandler {
|
|||||||
|
|
||||||
return ResponseEntity.ok(response);
|
return ResponseEntity.ok(response);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -11,6 +11,20 @@ import org.springframework.web.filter.OncePerRequestFilter;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.mcp.filter
|
||||||
|
* @className MdcLoggingFilter
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Component
|
@Component
|
||||||
public class MdcLoggingFilter extends OncePerRequestFilter {
|
public class MdcLoggingFilter extends OncePerRequestFilter {
|
||||||
|
|
||||||
@@ -39,4 +53,4 @@ public class MdcLoggingFilter extends OncePerRequestFilter {
|
|||||||
MDC.clear();
|
MDC.clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -10,6 +10,20 @@ import org.springframework.web.servlet.HandlerInterceptor;
|
|||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.mcp.security
|
||||||
|
* @className ApiKeyInterceptor
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Component
|
@Component
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@@ -55,4 +69,4 @@ public class ApiKeyInterceptor implements HandlerInterceptor {
|
|||||||
// 6. 메모리 누수를 방지하기 위해 요청 처리가 완전히 끝나면 MDC에서 테넌트 정보를 지워줍니다.
|
// 6. 메모리 누수를 방지하기 위해 요청 처리가 완전히 끝나면 MDC에서 테넌트 정보를 지워줍니다.
|
||||||
MDC.remove("tenantId");
|
MDC.remove("tenantId");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -13,6 +13,20 @@ import java.util.Map;
|
|||||||
* application-local.properties 파일에 정의된 mcp.security.api-keys.* 설정들을
|
* application-local.properties 파일에 정의된 mcp.security.api-keys.* 설정들을
|
||||||
* Map 자료구조로 자동 바인딩(주입) 받기 위한 설정 클래스입니다.
|
* Map 자료구조로 자동 바인딩(주입) 받기 위한 설정 클래스입니다.
|
||||||
*/
|
*/
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.mcp.security
|
||||||
|
* @className SecurityProperties
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Data
|
@Data
|
||||||
@Component
|
@Component
|
||||||
@ConfigurationProperties(prefix = "mcp.security")
|
@ConfigurationProperties(prefix = "mcp.security")
|
||||||
@@ -24,4 +38,3 @@ public class SecurityProperties {
|
|||||||
// 만약 "ALL" 이 포함되어 있다면 모든 도메인에 접근 허용
|
// 만약 "ALL" 이 포함되어 있다면 모든 도메인에 접근 허용
|
||||||
private Map<String, List<String>> tenantDomains = new HashMap<>();
|
private Map<String, List<String>> tenantDomains = new HashMap<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,20 @@ import io.shinhanlife.axhub.common.session.dto.ZtUsacOutDto;
|
|||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
import org.mapstruct.Mapping;
|
import org.mapstruct.Mapping;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.session.converter
|
||||||
|
* @className ZtUsacConverter
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Mapper(componentModel = "spring")
|
@Mapper(componentModel = "spring")
|
||||||
public abstract class ZtUsacConverter {
|
public abstract class ZtUsacConverter {
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,20 @@ import lombok.Builder;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.session.domain.model
|
||||||
|
* @className ZtUsacModel
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||||
@@ -34,4 +48,4 @@ public class ZtUsacModel extends AuditInfo {
|
|||||||
/* 인사직책명 */
|
/* 인사직책명 */
|
||||||
private String prafDutyNm;
|
private String prafDutyNm;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -5,6 +5,20 @@ import io.shinhanlife.axhub.common.session.dto.ZtUsacInDto;
|
|||||||
import io.shinhanlife.axhub.common.session.dto.ZtUsacOutDto;
|
import io.shinhanlife.axhub.common.session.dto.ZtUsacOutDto;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.session.domain.repository
|
||||||
|
* @className ZtUsacRepository
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@GlowMybatisMapper
|
@GlowMybatisMapper
|
||||||
public interface ZtUsacRepository {
|
public interface ZtUsacRepository {
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,20 @@ package io.shinhanlife.axhub.common.session.domain.service;
|
|||||||
import io.shinhanlife.axhub.common.session.dto.ZtUsacInDto;
|
import io.shinhanlife.axhub.common.session.dto.ZtUsacInDto;
|
||||||
import io.shinhanlife.axhub.common.session.dto.ZtUsacOutDto;
|
import io.shinhanlife.axhub.common.session.dto.ZtUsacOutDto;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.session.domain.service
|
||||||
|
* @className ZtUsacService
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
public interface ZtUsacService {
|
public interface ZtUsacService {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -7,6 +7,20 @@ import io.shinhanlife.axhub.common.session.dto.ZtUsacOutDto;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.session.domain.service.impl
|
||||||
|
* @className ZtUsacServiceImpl
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class ZtUsacServiceImpl implements ZtUsacService {
|
public class ZtUsacServiceImpl implements ZtUsacService {
|
||||||
@@ -25,4 +39,4 @@ public class ZtUsacServiceImpl implements ZtUsacService {
|
|||||||
result.initLists();
|
result.initLists();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -10,6 +10,20 @@ import lombok.Builder;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.session.dto
|
||||||
|
* @className SessionDto
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@Builder
|
@Builder
|
||||||
@@ -62,4 +76,4 @@ public class SessionDto {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -7,6 +7,20 @@ import lombok.Builder;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.session.dto
|
||||||
|
* @className ZtUsacInDto
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@Builder
|
@Builder
|
||||||
@@ -20,4 +34,4 @@ public class ZtUsacInDto {
|
|||||||
@Builder.Default
|
@Builder.Default
|
||||||
private String puseYn = "Y";
|
private String puseYn = "Y";
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -11,6 +11,20 @@ import lombok.Builder;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.session.dto
|
||||||
|
* @className ZtUsacOutDto
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||||
@@ -68,4 +82,4 @@ public class ZtUsacOutDto {
|
|||||||
return Arrays.asList(str.split(","));
|
return Arrays.asList(str.split(","));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -25,6 +25,20 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.session.presentation
|
||||||
|
* @className SsoRestController
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@@ -74,4 +88,4 @@ public class SsoRestController {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -7,6 +7,20 @@ import lombok.Getter;
|
|||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.session.presentation.io
|
||||||
|
* @className SsoResponse
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@Builder
|
@Builder
|
||||||
@@ -18,4 +32,4 @@ public class SsoResponse {
|
|||||||
private SessionDto userInfo;
|
private SessionDto userInfo;
|
||||||
private String redirectUrl;
|
private String redirectUrl;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -5,6 +5,20 @@ import jakarta.servlet.http.HttpSession;
|
|||||||
import org.springframework.web.context.request.RequestContextHolder;
|
import org.springframework.web.context.request.RequestContextHolder;
|
||||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.common.util
|
||||||
|
* @className SessionUtil
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
public class SessionUtil {
|
public class SessionUtil {
|
||||||
|
|
||||||
private static final String SESSION_KEY = "userInfo";
|
private static final String SESSION_KEY = "userInfo";
|
||||||
|
|||||||
@@ -10,6 +10,20 @@ import lombok.NoArgsConstructor;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
//@Schema(description = "응답 에러 객체. 성공 케이스일 경우 null. 실제 에러가 발생할 경우에만 예외명, 예외 메시지 필드 세팅 예정.")
|
//@Schema(description = "응답 에러 객체. 성공 케이스일 경우 null. 실제 에러가 발생할 경우에만 예외명, 예외 메시지 필드 세팅 예정.")
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.glow
|
||||||
|
* @className BaseException
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
public class BaseException {
|
public class BaseException {
|
||||||
|
|
||||||
// @Schema(description = "Error 코드 Meta 참조 운영. (예) 20001, 50001 등", shinhanlife = "20001")
|
// @Schema(description = "Error 코드 Meta 참조 운영. (예) 20001, 50001 등", shinhanlife = "20001")
|
||||||
@@ -26,4 +40,4 @@ public class BaseException {
|
|||||||
@Builder.Default
|
@Builder.Default
|
||||||
String exceptionDetail = "";
|
String exceptionDetail = "";
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -5,6 +5,20 @@ import lombok.Builder;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.glow
|
||||||
|
* @className BaseResponse
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@ToString
|
@ToString
|
||||||
@Getter
|
@Getter
|
||||||
@Builder
|
@Builder
|
||||||
@@ -22,4 +36,4 @@ public class BaseResponse<T> {
|
|||||||
|
|
||||||
private BaseException error;
|
private BaseException error;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,20 @@
|
|||||||
package io.shinhanlife.glow;
|
package io.shinhanlife.glow;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.glow
|
||||||
|
* @className BizException
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
public class BizException extends RuntimeException {
|
public class BizException extends RuntimeException {
|
||||||
public BizException(String s) {
|
public BizException(String s) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -9,7 +9,21 @@ public @interface GlowLogTarget {
|
|||||||
|
|
||||||
Target[] value() default {};
|
Target[] value() default {};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.glow
|
||||||
|
* @className Target
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
enum Target {
|
enum Target {
|
||||||
FILE, CONSOLE
|
FILE, CONSOLE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,6 +5,20 @@ import org.slf4j.LoggerFactory;
|
|||||||
import org.springframework.context.annotation.Scope;
|
import org.springframework.context.annotation.Scope;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.glow
|
||||||
|
* @className GlowLogger
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Component
|
@Component
|
||||||
@Scope("prototype")
|
@Scope("prototype")
|
||||||
public class GlowLogger {
|
public class GlowLogger {
|
||||||
|
|||||||
@@ -10,6 +10,20 @@ import org.apache.ibatis.session.RowBounds;
|
|||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.glow
|
||||||
|
* @className PageInfo
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||||
@@ -65,4 +79,4 @@ public class PageInfo extends RowBounds implements Serializable {
|
|||||||
return super.getLimit();
|
return super.getLimit();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -4,6 +4,20 @@ import lombok.Getter;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.glow
|
||||||
|
* @className ResponseCode
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public enum ResponseCode {
|
public enum ResponseCode {
|
||||||
@@ -28,4 +42,4 @@ public enum ResponseCode {
|
|||||||
private final HttpStatus status;
|
private final HttpStatus status;
|
||||||
private final String message;
|
private final String message;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -3,6 +3,20 @@ package io.shinhanlife.glow;
|
|||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.glow
|
||||||
|
* @className ResponseUtil
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
public final class ResponseUtil {
|
public final class ResponseUtil {
|
||||||
|
|
||||||
private ResponseUtil() {
|
private ResponseUtil() {
|
||||||
@@ -108,4 +122,4 @@ public final class ResponseUtil {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -8,6 +8,20 @@ import lombok.AllArgsConstructor;
|
|||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.glow.db.dto
|
||||||
|
* @className AuditInfo
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@@ -23,4 +37,4 @@ public class AuditInfo {
|
|||||||
private String systChgOgnzNo; // 시스템변경조직번호
|
private String systChgOgnzNo; // 시스템변경조직번호
|
||||||
private String systChgSystCd; // 시스템변경시스템코드
|
private String systChgSystCd; // 시스템변경시스템코드
|
||||||
private String systChgPrgrId; // 시스템변경프로그램ID
|
private String systChgPrgrId; // 시스템변경프로그램ID
|
||||||
}
|
}
|
||||||
@@ -4,6 +4,20 @@ import org.springframework.boot.SpringApplication;
|
|||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.cache.annotation.EnableCaching;
|
import org.springframework.cache.annotation.EnableCaching;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.gateway
|
||||||
|
* @className AxHubGatewayApplication
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@SpringBootApplication(scanBasePackages = {"io.shinhanlife.axhub.biz.mcp.gateway", "io.shinhanlife.axhub.common.mcp", "io.shinhanlife.axhub.common.config"})
|
@SpringBootApplication(scanBasePackages = {"io.shinhanlife.axhub.biz.mcp.gateway", "io.shinhanlife.axhub.common.mcp", "io.shinhanlife.axhub.common.config"})
|
||||||
@org.springframework.boot.context.properties.ConfigurationPropertiesScan(basePackages = {"io.shinhanlife.axhub.biz.mcp.gateway", "io.shinhanlife.axhub.common.mcp", "io.shinhanlife.axhub.common.config"})
|
@org.springframework.boot.context.properties.ConfigurationPropertiesScan(basePackages = {"io.shinhanlife.axhub.biz.mcp.gateway", "io.shinhanlife.axhub.common.mcp", "io.shinhanlife.axhub.common.config"})
|
||||||
@EnableCaching
|
@EnableCaching
|
||||||
@@ -11,4 +25,4 @@ public class AxHubGatewayApplication {
|
|||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
SpringApplication.run(AxHubGatewayApplication.class, args);
|
SpringApplication.run(AxHubGatewayApplication.class, args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,6 +7,20 @@ import org.aspectj.lang.annotation.Aspect;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.util.StopWatch;
|
import org.springframework.util.StopWatch;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.gateway.aop
|
||||||
|
* @className GatewayLoggingAspect
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Aspect
|
@Aspect
|
||||||
@Component
|
@Component
|
||||||
@@ -36,4 +50,4 @@ public class GatewayLoggingAspect {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,10 +7,24 @@ import org.springframework.context.annotation.Configuration;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.gateway.config
|
||||||
|
* @className GatewayFallbackProperties
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Data
|
@Data
|
||||||
@Configuration
|
@Configuration
|
||||||
@ConfigurationProperties(prefix = "mcp.gateway.fallback")
|
@ConfigurationProperties(prefix = "mcp.gateway.fallback")
|
||||||
public class GatewayFallbackProperties {
|
public class GatewayFallbackProperties {
|
||||||
private Map<String, String> routes = new HashMap<>();
|
private Map<String, String> routes = new HashMap<>();
|
||||||
private String defaultUrl;
|
private String defaultUrl;
|
||||||
}
|
}
|
||||||
@@ -9,6 +9,20 @@ import org.springframework.data.redis.core.RedisTemplate;
|
|||||||
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
|
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
|
||||||
import org.springframework.data.redis.serializer.StringRedisSerializer;
|
import org.springframework.data.redis.serializer.StringRedisSerializer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.gateway.config
|
||||||
|
* @className RedisConfig
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
public class RedisConfig {
|
public class RedisConfig {
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,20 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.gateway.controller
|
||||||
|
* @className KillSwitchController
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/mcp/api/v1/admin/kill-switch")
|
@RequestMapping("/mcp/api/v1/admin/kill-switch")
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@@ -52,4 +66,4 @@ public class KillSwitchController {
|
|||||||
"target", target
|
"target", target
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4,6 +4,20 @@ import org.springframework.web.bind.annotation.PostMapping;
|
|||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.gateway.controller
|
||||||
|
* @className MciMockController
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
public class MciMockController {
|
public class MciMockController {
|
||||||
|
|
||||||
@@ -34,4 +48,4 @@ public class MciMockController {
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -19,6 +19,20 @@ import java.util.List;
|
|||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.gateway.controller
|
||||||
|
* @className McpRouterController
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/mcp/api/v1")
|
@RequestMapping("/mcp/api/v1")
|
||||||
@@ -185,4 +199,4 @@ public class McpRouterController {
|
|||||||
return ResponseEntity.status(404).body("Tool not found");
|
return ResponseEntity.status(404).body("Tool not found");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -14,6 +14,20 @@ import java.util.Map;
|
|||||||
* Tool(Agent)의 명세 및 라우팅 정보를 담고 있는 메타데이터 클래스
|
* Tool(Agent)의 명세 및 라우팅 정보를 담고 있는 메타데이터 클래스
|
||||||
* Redis 레지스트리에 저장되며, Planner와 Router 간의 통신 객체(Plan)로 사용됩니다.
|
* Redis 레지스트리에 저장되며, Planner와 Router 간의 통신 객체(Plan)로 사용됩니다.
|
||||||
*/
|
*/
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.gateway.dto
|
||||||
|
* @className ToolMetadata
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
|||||||
@@ -9,6 +9,20 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.gateway.messaging
|
||||||
|
* @className KafkaProducerService
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@@ -45,4 +59,3 @@ public class KafkaProducerService {
|
|||||||
return ticketId;
|
return ticketId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,6 +12,20 @@ import java.util.Set;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.gateway.registry
|
||||||
|
* @className RedisRegistryService
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@@ -80,4 +94,4 @@ public class RedisRegistryService {
|
|||||||
redisTemplate.delete(KEY_PREFIX + toolName);
|
redisTemplate.delete(KEY_PREFIX + toolName);
|
||||||
log.info(" [RedisRegistry] 툴 삭제 완료: {}", toolName);
|
log.info(" [RedisRegistry] 툴 삭제 완료: {}", toolName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -11,6 +11,20 @@ import org.springframework.http.MediaType;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.gateway.service
|
||||||
|
* @className ExecuteService
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
|
|||||||
@@ -5,6 +5,20 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.springframework.data.redis.core.StringRedisTemplate;
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.gateway.service
|
||||||
|
* @className KillSwitchService
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@@ -54,4 +68,4 @@ public class KillSwitchService {
|
|||||||
stringRedisTemplate.delete(key);
|
stringRedisTemplate.delete(key);
|
||||||
log.info(" [KillSwitch] 차단 키 완전 삭제: {} -> {}", type, target);
|
log.info(" [KillSwitch] 차단 키 완전 삭제: {} -> {}", type, target);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -11,6 +11,20 @@ import org.springframework.stereotype.Component;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.gateway.service
|
||||||
|
* @className ToolPlanner
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Component
|
@Component
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@@ -80,4 +94,4 @@ public class ToolPlanner {
|
|||||||
// 3. 수립된 계획(툴 메타데이터) 반환
|
// 3. 수립된 계획(툴 메타데이터) 반환
|
||||||
return toolMetadata;
|
return toolMetadata;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -10,6 +10,20 @@ import io.shinhanlife.axhub.biz.so.atm.presentation.io.AthrSearchResponse;
|
|||||||
import io.shinhanlife.axhub.biz.so.atm.presentation.io.RoleListRequest;
|
import io.shinhanlife.axhub.biz.so.atm.presentation.io.RoleListRequest;
|
||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.so.atm.converter
|
||||||
|
* @className AccessMgmtConverter
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Mapper(componentModel = "spring")
|
@Mapper(componentModel = "spring")
|
||||||
public abstract class AccessMgmtConverter {
|
public abstract class AccessMgmtConverter {
|
||||||
|
|
||||||
@@ -20,4 +34,4 @@ public abstract class AccessMgmtConverter {
|
|||||||
public abstract AthrSaveInDto toInDto(AthrSaveRequest request);
|
public abstract AthrSaveInDto toInDto(AthrSaveRequest request);
|
||||||
|
|
||||||
public abstract AthrSearchResponse toResponse(AthrOutDto outDto);
|
public abstract AthrSearchResponse toResponse(AthrOutDto outDto);
|
||||||
}
|
}
|
||||||
@@ -11,6 +11,20 @@ import org.apache.ibatis.annotations.Param;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.so.atm.domain.repository
|
||||||
|
* @className AccessMgmtMapper
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@GlowMybatisMapper
|
@GlowMybatisMapper
|
||||||
public interface AccessMgmtMapper {
|
public interface AccessMgmtMapper {
|
||||||
|
|
||||||
@@ -31,4 +45,4 @@ public interface AccessMgmtMapper {
|
|||||||
void deleteKnwlAthr(@Param("systId") String systId, @Param("roleNo") String roleNo);
|
void deleteKnwlAthr(@Param("systId") String systId, @Param("roleNo") String roleNo);
|
||||||
|
|
||||||
void insertKnwlAthr(RoleKnwlAthrInDto inDto);
|
void insertKnwlAthr(RoleKnwlAthrInDto inDto);
|
||||||
}
|
}
|
||||||
@@ -8,6 +8,20 @@ import io.shinhanlife.axhub.biz.so.atm.dto.RoleListOutDto;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.so.atm.domain.service
|
||||||
|
* @className AccessMgmtService
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
public interface AccessMgmtService {
|
public interface AccessMgmtService {
|
||||||
|
|
||||||
List<RoleListOutDto> getRoles(RoleListInDto inDto);
|
List<RoleListOutDto> getRoles(RoleListInDto inDto);
|
||||||
@@ -15,4 +29,4 @@ public interface AccessMgmtService {
|
|||||||
AthrOutDto getAthr(AthrSearchInDto inDto);
|
AthrOutDto getAthr(AthrSearchInDto inDto);
|
||||||
|
|
||||||
void saveAthr(AthrSaveInDto inDto);
|
void saveAthr(AthrSaveInDto inDto);
|
||||||
}
|
}
|
||||||
@@ -21,6 +21,20 @@ import java.util.Set;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.so.atm.domain.service.impl
|
||||||
|
* @className AccessMgmtServiceImpl
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class AccessMgmtServiceImpl implements AccessMgmtService {
|
public class AccessMgmtServiceImpl implements AccessMgmtService {
|
||||||
@@ -125,4 +139,4 @@ public class AccessMgmtServiceImpl implements AccessMgmtService {
|
|||||||
private String shortUuid() {
|
private String shortUuid() {
|
||||||
return UUID.randomUUID().toString().replace("-", "").substring(0, 12).toUpperCase();
|
return UUID.randomUUID().toString().replace("-", "").substring(0, 12).toUpperCase();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,6 +7,20 @@ import lombok.AllArgsConstructor;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.so.atm.dto
|
||||||
|
* @className AthrItemOutDto
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@Builder
|
@Builder
|
||||||
@@ -18,4 +32,4 @@ public class AthrItemOutDto {
|
|||||||
private String resourceDs;
|
private String resourceDs;
|
||||||
private String typeCode;
|
private String typeCode;
|
||||||
private boolean granted;
|
private boolean granted;
|
||||||
}
|
}
|
||||||
@@ -9,6 +9,20 @@ import lombok.Getter;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.so.atm.dto
|
||||||
|
* @className AthrOutDto
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Setter
|
@Setter
|
||||||
@@ -17,4 +31,4 @@ import java.util.List;
|
|||||||
public class AthrOutDto {
|
public class AthrOutDto {
|
||||||
private List<AthrItemOutDto> tools;
|
private List<AthrItemOutDto> tools;
|
||||||
private List<AthrItemOutDto> knwls;
|
private List<AthrItemOutDto> knwls;
|
||||||
}
|
}
|
||||||
@@ -9,6 +9,20 @@ import lombok.Setter;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.so.atm.dto
|
||||||
|
* @className AthrSaveInDto
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@Builder
|
@Builder
|
||||||
@@ -19,4 +33,4 @@ public class AthrSaveInDto {
|
|||||||
private String roleNo;
|
private String roleNo;
|
||||||
private List<String> grantedToolIds;
|
private List<String> grantedToolIds;
|
||||||
private List<String> grantedKnwlIds;
|
private List<String> grantedKnwlIds;
|
||||||
}
|
}
|
||||||
@@ -7,6 +7,20 @@ import lombok.AllArgsConstructor;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.so.atm.dto
|
||||||
|
* @className AthrSearchInDto
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@Builder
|
@Builder
|
||||||
@@ -15,4 +29,4 @@ import lombok.Setter;
|
|||||||
public class AthrSearchInDto {
|
public class AthrSearchInDto {
|
||||||
private String systId;
|
private String systId;
|
||||||
private String roleNo;
|
private String roleNo;
|
||||||
}
|
}
|
||||||
@@ -9,6 +9,20 @@ import lombok.Setter;
|
|||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.so.atm.dto
|
||||||
|
* @className RoleKnwlAthrInDto
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@Builder
|
@Builder
|
||||||
@@ -31,4 +45,4 @@ public class RoleKnwlAthrInDto {
|
|||||||
private String systChgOgnzNo;
|
private String systChgOgnzNo;
|
||||||
private String systChgSystCd;
|
private String systChgSystCd;
|
||||||
private String systChgPrgrId;
|
private String systChgPrgrId;
|
||||||
}
|
}
|
||||||
@@ -7,6 +7,20 @@ import lombok.AllArgsConstructor;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.so.atm.dto
|
||||||
|
* @className RoleListInDto
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@Builder
|
@Builder
|
||||||
@@ -16,4 +30,4 @@ public class RoleListInDto {
|
|||||||
private String systId;
|
private String systId;
|
||||||
private String puseYn;
|
private String puseYn;
|
||||||
private String keyword;
|
private String keyword;
|
||||||
}
|
}
|
||||||
@@ -7,6 +7,20 @@ import lombok.AllArgsConstructor;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.so.atm.dto
|
||||||
|
* @className RoleListOutDto
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@Builder
|
@Builder
|
||||||
@@ -18,4 +32,4 @@ public class RoleListOutDto {
|
|||||||
private String roleNm;
|
private String roleNm;
|
||||||
private String roleDs;
|
private String roleDs;
|
||||||
private String puseYn;
|
private String puseYn;
|
||||||
}
|
}
|
||||||
@@ -9,6 +9,20 @@ import lombok.Setter;
|
|||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.so.atm.dto
|
||||||
|
* @className RoleToolAthrInDto
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@Builder
|
@Builder
|
||||||
@@ -31,4 +45,4 @@ public class RoleToolAthrInDto {
|
|||||||
private String systChgOgnzNo;
|
private String systChgOgnzNo;
|
||||||
private String systChgSystCd;
|
private String systChgSystCd;
|
||||||
private String systChgPrgrId;
|
private String systChgPrgrId;
|
||||||
}
|
}
|
||||||
@@ -17,6 +17,20 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.so.atm.presentation
|
||||||
|
* @className SOATM0100Controller
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/so/atm")
|
@RequestMapping("/so/atm")
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@@ -42,4 +56,4 @@ public class SOATM0100Controller {
|
|||||||
accessMgmtUseCase.saveAthr(request);
|
accessMgmtUseCase.saveAthr(request);
|
||||||
return ResponseUtil.ok();
|
return ResponseUtil.ok();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,6 +5,20 @@ import lombok.Setter;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.so.atm.presentation.io
|
||||||
|
* @className AthrSaveRequest
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public class AthrSaveRequest {
|
public class AthrSaveRequest {
|
||||||
@@ -12,4 +26,4 @@ public class AthrSaveRequest {
|
|||||||
private String roleNo;
|
private String roleNo;
|
||||||
private List<String> grantedToolIds;
|
private List<String> grantedToolIds;
|
||||||
private List<String> grantedKnwlIds;
|
private List<String> grantedKnwlIds;
|
||||||
}
|
}
|
||||||
@@ -3,9 +3,23 @@ package io.shinhanlife.axhub.biz.so.atm.presentation.io;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.so.atm.presentation.io
|
||||||
|
* @className AthrSearchRequest
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public class AthrSearchRequest {
|
public class AthrSearchRequest {
|
||||||
private String systId;
|
private String systId;
|
||||||
private String roleNo;
|
private String roleNo;
|
||||||
}
|
}
|
||||||
@@ -6,9 +6,23 @@ import lombok.Getter;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.so.atm.presentation.io
|
||||||
|
* @className AthrSearchResponse
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class AthrSearchResponse {
|
public class AthrSearchResponse {
|
||||||
private List<AthrItemOutDto> tools;
|
private List<AthrItemOutDto> tools;
|
||||||
private List<AthrItemOutDto> knwls;
|
private List<AthrItemOutDto> knwls;
|
||||||
}
|
}
|
||||||
@@ -3,10 +3,24 @@ package io.shinhanlife.axhub.biz.so.atm.presentation.io;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.so.atm.presentation.io
|
||||||
|
* @className RoleListRequest
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
public class RoleListRequest {
|
public class RoleListRequest {
|
||||||
private String systId;
|
private String systId;
|
||||||
private String puseYn;
|
private String puseYn;
|
||||||
private String keyword;
|
private String keyword;
|
||||||
}
|
}
|
||||||
@@ -8,6 +8,20 @@ import io.shinhanlife.axhub.biz.so.atm.presentation.io.RoleListRequest;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.so.atm.usecase
|
||||||
|
* @className AccessMgmtUseCase
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
public interface AccessMgmtUseCase {
|
public interface AccessMgmtUseCase {
|
||||||
|
|
||||||
List<RoleListOutDto> getRoles(RoleListRequest request);
|
List<RoleListOutDto> getRoles(RoleListRequest request);
|
||||||
@@ -15,4 +29,4 @@ public interface AccessMgmtUseCase {
|
|||||||
AthrSearchResponse getAthr(AthrSearchRequest request);
|
AthrSearchResponse getAthr(AthrSearchRequest request);
|
||||||
|
|
||||||
void saveAthr(AthrSaveRequest request);
|
void saveAthr(AthrSaveRequest request);
|
||||||
}
|
}
|
||||||
@@ -13,6 +13,20 @@ import org.springframework.stereotype.Service;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.so.atm.usecase.impl
|
||||||
|
* @className AccessMgmtUseCaseImpl
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class AccessMgmtUseCaseImpl implements AccessMgmtUseCase {
|
public class AccessMgmtUseCaseImpl implements AccessMgmtUseCase {
|
||||||
@@ -34,4 +48,4 @@ public class AccessMgmtUseCaseImpl implements AccessMgmtUseCase {
|
|||||||
public void saveAthr(AthrSaveRequest request) {
|
public void saveAthr(AthrSaveRequest request) {
|
||||||
accessMgmtService.saveAthr(converter.toInDto(request));
|
accessMgmtService.saveAthr(converter.toInDto(request));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -9,6 +9,20 @@ import io.shinhanlife.axhub.sample.presentation.io.StrnTermRequest;
|
|||||||
import io.shinhanlife.axhub.sample.presentation.io.StrnTermResponse;
|
import io.shinhanlife.axhub.sample.presentation.io.StrnTermResponse;
|
||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.sample.converter
|
||||||
|
* @className SampleConverter
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Mapper(componentModel = "spring")
|
@Mapper(componentModel = "spring")
|
||||||
public abstract class SampleConverter {
|
public abstract class SampleConverter {
|
||||||
|
|
||||||
@@ -20,4 +34,4 @@ public abstract class SampleConverter {
|
|||||||
|
|
||||||
public abstract AppliSystNtfyRgiInDTO convertAppliRequestToDto(AppliSystNtfyPatiRequest request);
|
public abstract AppliSystNtfyRgiInDTO convertAppliRequestToDto(AppliSystNtfyPatiRequest request);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -3,6 +3,20 @@ package io.shinhanlife.axhub.sample.domain.model;
|
|||||||
import io.shinhanlife.glow.db.dto.AuditInfo;
|
import io.shinhanlife.glow.db.dto.AuditInfo;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.sample.domain.model
|
||||||
|
* @className AppliSystNtfyPatiModel
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Builder
|
@Builder
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@@ -18,4 +32,4 @@ public class AppliSystNtfyPatiModel extends AuditInfo {
|
|||||||
private String ntfyTrgtPrafNo;
|
private String ntfyTrgtPrafNo;
|
||||||
private String shmsPmlYn;
|
private String shmsPmlYn;
|
||||||
private String ntfyCfmYn;
|
private String ntfyCfmYn;
|
||||||
}
|
}
|
||||||
@@ -9,6 +9,20 @@ import io.shinhanlife.glow.PageInfo;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.sample.domain.repository
|
||||||
|
* @className GlowSampleRepository
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@GlowMybatisMapper
|
@GlowMybatisMapper
|
||||||
public interface GlowSampleRepository {
|
public interface GlowSampleRepository {
|
||||||
|
|
||||||
@@ -17,4 +31,4 @@ public interface GlowSampleRepository {
|
|||||||
|
|
||||||
int insertAppliSystNtfyPati(AppliSystNtfyPatiModel appliSystNtfyPatiModel);
|
int insertAppliSystNtfyPati(AppliSystNtfyPatiModel appliSystNtfyPatiModel);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -5,7 +5,21 @@ import io.shinhanlife.axhub.sample.dto.StrnTermListInDTO;
|
|||||||
import io.shinhanlife.axhub.sample.dto.StrnTermListOutDTO;
|
import io.shinhanlife.axhub.sample.dto.StrnTermListOutDTO;
|
||||||
import io.shinhanlife.glow.PageInfo;
|
import io.shinhanlife.glow.PageInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.sample.domain.service
|
||||||
|
* @className GlowSampleService
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
public interface GlowSampleService {
|
public interface GlowSampleService {
|
||||||
StrnTermListOutDTO getStrnTerms(StrnTermListInDTO inDto, PageInfo pageInfo);
|
StrnTermListOutDTO getStrnTerms(StrnTermListInDTO inDto, PageInfo pageInfo);
|
||||||
int insertAppliSystNtfyPati(AppliSystNtfyRgiInDTO inDto);
|
int insertAppliSystNtfyPati(AppliSystNtfyRgiInDTO inDto);
|
||||||
}
|
}
|
||||||
@@ -14,6 +14,20 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.sample.domain.service.impl
|
||||||
|
* @className GlowSampleServiceImpl
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class GlowSampleServiceImpl implements GlowSampleService {
|
public class GlowSampleServiceImpl implements GlowSampleService {
|
||||||
@@ -38,4 +52,4 @@ public class GlowSampleServiceImpl implements GlowSampleService {
|
|||||||
return glowSampleRepository.insertAppliSystNtfyPati(appliSystNtfyPatiModel);
|
return glowSampleRepository.insertAppliSystNtfyPati(appliSystNtfyPatiModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -8,6 +8,20 @@ import lombok.AllArgsConstructor;
|
|||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.sample.dto
|
||||||
|
* @className AppliSystNtfyRgiInDTO
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@Builder
|
@Builder
|
||||||
@@ -24,4 +38,4 @@ public class AppliSystNtfyRgiInDTO {
|
|||||||
private String ntfyTrgtPrafNo;
|
private String ntfyTrgtPrafNo;
|
||||||
private String shmsPmlYn;
|
private String shmsPmlYn;
|
||||||
private String ntfyCfmYn;
|
private String ntfyCfmYn;
|
||||||
}
|
}
|
||||||
@@ -7,6 +7,20 @@ import lombok.Builder;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.sample.dto
|
||||||
|
* @className StrnTermListInDTO
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@Builder
|
@Builder
|
||||||
@@ -14,4 +28,4 @@ import lombok.Setter;
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class StrnTermListInDTO {
|
public class StrnTermListInDTO {
|
||||||
private String strnTermHanNm;
|
private String strnTermHanNm;
|
||||||
}
|
}
|
||||||
@@ -11,6 +11,20 @@ import lombok.Setter;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.sample.dto
|
||||||
|
* @className StrnTermListOutDTO
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Builder
|
@Builder
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@@ -29,4 +43,4 @@ public class StrnTermListOutDTO {
|
|||||||
private String strnTermEngNm;
|
private String strnTermEngNm;
|
||||||
private String strnTermScrnTermNm;
|
private String strnTermScrnTermNm;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -13,6 +13,20 @@ import org.springframework.web.bind.annotation.PostMapping;
|
|||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.sample.presentation
|
||||||
|
* @className GlowSampleController
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,20 @@ package io.shinhanlife.axhub.sample.presentation.io;
|
|||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.sample.presentation.io
|
||||||
|
* @className AppliSystNtfyPatiRequest
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||||
@@ -17,4 +31,4 @@ public class AppliSystNtfyPatiRequest {
|
|||||||
private String ntfyTrgtPrafNo;
|
private String ntfyTrgtPrafNo;
|
||||||
private String shmsPmlYn;
|
private String shmsPmlYn;
|
||||||
private String ntfyCfmYn;
|
private String ntfyCfmYn;
|
||||||
}
|
}
|
||||||
@@ -2,6 +2,20 @@ package io.shinhanlife.axhub.sample.presentation.io;
|
|||||||
|
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.sample.presentation.io
|
||||||
|
* @className AppliSystNtfyPatiResponse
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||||
@@ -9,4 +23,4 @@ import lombok.*;
|
|||||||
public class AppliSystNtfyPatiResponse {
|
public class AppliSystNtfyPatiResponse {
|
||||||
private String successYn;
|
private String successYn;
|
||||||
private String msg;
|
private String msg;
|
||||||
}
|
}
|
||||||
@@ -3,6 +3,20 @@ package io.shinhanlife.axhub.sample.presentation.io;
|
|||||||
import io.shinhanlife.glow.PageInfo;
|
import io.shinhanlife.glow.PageInfo;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.sample.presentation.io
|
||||||
|
* @className StrnTermRequest
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||||
@@ -11,4 +25,4 @@ public class StrnTermRequest {
|
|||||||
private PageInfo pageInfo;
|
private PageInfo pageInfo;
|
||||||
|
|
||||||
private String strnTermHanNm;
|
private String strnTermHanNm;
|
||||||
}
|
}
|
||||||
@@ -5,6 +5,20 @@ import lombok.*;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.sample.presentation.io
|
||||||
|
* @className StrnTermResponse
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@Builder
|
@Builder
|
||||||
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||||
|
|||||||
@@ -5,7 +5,21 @@ import io.shinhanlife.axhub.sample.presentation.io.AppliSystNtfyPatiResponse;
|
|||||||
import io.shinhanlife.axhub.sample.presentation.io.StrnTermRequest;
|
import io.shinhanlife.axhub.sample.presentation.io.StrnTermRequest;
|
||||||
import io.shinhanlife.axhub.sample.presentation.io.StrnTermResponse;
|
import io.shinhanlife.axhub.sample.presentation.io.StrnTermResponse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.sample.usecase
|
||||||
|
* @className GlowSampleUseCase
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
public interface GlowSampleUseCase {
|
public interface GlowSampleUseCase {
|
||||||
StrnTermResponse getStrnTerms(StrnTermRequest req);
|
StrnTermResponse getStrnTerms(StrnTermRequest req);
|
||||||
AppliSystNtfyPatiResponse insertAppliSystNtfyPati(AppliSystNtfyPatiRequest req);
|
AppliSystNtfyPatiResponse insertAppliSystNtfyPati(AppliSystNtfyPatiRequest req);
|
||||||
}
|
}
|
||||||
@@ -15,6 +15,20 @@ import io.shinhanlife.glow.GlowServiceGroupId;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.sample.usecase.impl
|
||||||
|
* @className GlowSampleUseCaseImpl
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@GlowServiceGroupId(value = "GlowSample", description="GlowSampleUseCase")
|
@GlowServiceGroupId(value = "GlowSample", description="GlowSampleUseCase")
|
||||||
@@ -40,4 +54,4 @@ public class GlowSampleUseCaseImpl implements GlowSampleUseCase {
|
|||||||
.msg(rtn > 0 ? "성공적으로 처리 되었습니다." : "처리중 오류발생!!")
|
.msg(rtn > 0 ? "성공적으로 처리 되었습니다." : "처리중 오류발생!!")
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -8,6 +8,20 @@ import org.springframework.stereotype.Component;
|
|||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.adapter.aop
|
||||||
|
* @className EimsMonitoringAspect
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Aspect
|
@Aspect
|
||||||
@Component
|
@Component
|
||||||
|
|||||||
@@ -11,6 +11,20 @@ import org.springframework.web.client.RestClient;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.adapter.connector
|
||||||
|
* @className ExternalApiConnector
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
public class ExternalApiConnector {
|
public class ExternalApiConnector {
|
||||||
|
|||||||
@@ -11,6 +11,20 @@ import org.springframework.web.client.RestClient;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.adapter.connector
|
||||||
|
* @className InternalSystemConnector
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
public class InternalSystemConnector {
|
public class InternalSystemConnector {
|
||||||
|
|||||||
@@ -12,6 +12,20 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.adapter.connector
|
||||||
|
* @className LegacyDbConnector
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
|
|||||||
@@ -14,6 +14,20 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import io.shinhanlife.axhub.biz.mcp.adapter.util.LegacyDataTransformer;
|
import io.shinhanlife.axhub.biz.mcp.adapter.util.LegacyDataTransformer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.adapter.connector
|
||||||
|
* @className LegacyEimsConnector
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@@ -118,4 +132,4 @@ public class LegacyEimsConnector {
|
|||||||
return "{}";
|
return "{}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,6 +7,20 @@ import org.springframework.stereotype.Service;
|
|||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.adapter.connector
|
||||||
|
* @className ThirdPartySecurityConnector
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@@ -54,4 +68,4 @@ public class ThirdPartySecurityConnector {
|
|||||||
log.info(" [3rd Party Security] 보안 모듈 처리 완료");
|
log.info(" [3rd Party Security] 보안 모듈 처리 완료");
|
||||||
return resultJson;
|
return resultJson;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -10,6 +10,20 @@ import org.springframework.kafka.core.KafkaTemplate;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.StopWatch;
|
import org.springframework.util.StopWatch;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.adapter.sender
|
||||||
|
* @className EaiEimsSender
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service("eaiEimsSender")
|
@Service("eaiEimsSender")
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@@ -87,4 +101,4 @@ public class EaiEimsSender implements EimsSender {
|
|||||||
interfaceId, System.currentTimeMillis(), xmlData
|
interfaceId, System.currentTimeMillis(), xmlData
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,20 @@
|
|||||||
package io.shinhanlife.axhub.biz.mcp.adapter.sender;
|
package io.shinhanlife.axhub.biz.mcp.adapter.sender;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.adapter.sender
|
||||||
|
* @className EimsSender
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
public interface EimsSender {
|
public interface EimsSender {
|
||||||
// 프로토콜에 상관없이 이 메서드 하나로 통일합니다.
|
// 프로토콜에 상관없이 이 메서드 하나로 통일합니다.
|
||||||
String send(String interfaceId, String payload) throws Exception;
|
String send(String interfaceId, String payload) throws Exception;
|
||||||
}
|
}
|
||||||
@@ -13,6 +13,20 @@ import org.slf4j.MDC;
|
|||||||
|
|
||||||
import io.shinhanlife.axhub.biz.mcp.tool.config.GlowCommunicationProperties;
|
import io.shinhanlife.axhub.biz.mcp.tool.config.GlowCommunicationProperties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.adapter.sender
|
||||||
|
* @className HttpEimsSender
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Component
|
@Component
|
||||||
public class HttpEimsSender implements EimsSender {
|
public class HttpEimsSender implements EimsSender {
|
||||||
@@ -50,4 +64,4 @@ public class HttpEimsSender implements EimsSender {
|
|||||||
.retrieve()
|
.retrieve()
|
||||||
.body(String.class); // 응답 결과를 String으로 받음
|
.body(String.class); // 응답 결과를 String으로 받음
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -9,6 +9,20 @@ import org.springframework.util.LinkedMultiValueMap;
|
|||||||
import org.springframework.util.MultiValueMap;
|
import org.springframework.util.MultiValueMap;
|
||||||
import org.springframework.web.client.RestClient;
|
import org.springframework.web.client.RestClient;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.adapter.sender
|
||||||
|
* @className JspFormEimsSender
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Component
|
@Component
|
||||||
public class JspFormEimsSender implements EimsSender {
|
public class JspFormEimsSender implements EimsSender {
|
||||||
@@ -41,4 +55,4 @@ public class JspFormEimsSender implements EimsSender {
|
|||||||
// 3. JSP 특유의 앞뒤 공백 및 엔터 제거
|
// 3. JSP 특유의 앞뒤 공백 및 엔터 제거
|
||||||
return rawResponse != null ? rawResponse.trim() : "";
|
return rawResponse != null ? rawResponse.trim() : "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -8,6 +8,20 @@ import org.springframework.web.client.RestClient;
|
|||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.adapter.sender
|
||||||
|
* @className JspJsonEimsSender
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Component
|
@Component
|
||||||
public class JspJsonEimsSender implements EimsSender {
|
public class JspJsonEimsSender implements EimsSender {
|
||||||
@@ -42,4 +56,4 @@ public class JspJsonEimsSender implements EimsSender {
|
|||||||
// 3. JSP 응답 정제
|
// 3. JSP 응답 정제
|
||||||
return rawResponse != null ? rawResponse.trim() : "";
|
return rawResponse != null ? rawResponse.trim() : "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -10,6 +10,20 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.util.StopWatch;
|
import org.springframework.util.StopWatch;
|
||||||
import org.springframework.web.client.RestClient;
|
import org.springframework.web.client.RestClient;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.adapter.sender
|
||||||
|
* @className MciEimsSender
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service("mciEimsSender")
|
@Service("mciEimsSender")
|
||||||
public class MciEimsSender implements EimsSender {
|
public class MciEimsSender implements EimsSender {
|
||||||
@@ -58,4 +72,4 @@ public class MciEimsSender implements EimsSender {
|
|||||||
private String wrapWithEsbHeader(String interfaceId, String xmlData) {
|
private String wrapWithEsbHeader(String interfaceId, String xmlData) {
|
||||||
return String.format("<EsbMessage><Header><InterfaceId>%s</InterfaceId></Header><Body>%s</Body></EsbMessage>", interfaceId, xmlData);
|
return String.format("<EsbMessage><Header><InterfaceId>%s</InterfaceId></Header><Body>%s</Body></EsbMessage>", interfaceId, xmlData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -10,6 +10,20 @@ import java.io.OutputStream;
|
|||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
import java.net.Socket;
|
import java.net.Socket;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @package io.shinhanlife.axhub.biz.mcp.adapter.sender
|
||||||
|
* @className TcpEimsSender
|
||||||
|
* @description AX HUB 시스템 처리 클래스
|
||||||
|
* @author 김형식
|
||||||
|
* @create 2026.09.01
|
||||||
|
* <pre>
|
||||||
|
* ---------- 개정이력 ----------
|
||||||
|
* 수정일 수정자 수정내용
|
||||||
|
* ---------- -------- ---------------------------
|
||||||
|
* 2026.09.01 김형식 최초생성
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Component
|
@Component
|
||||||
public class TcpEimsSender implements EimsSender {
|
public class TcpEimsSender implements EimsSender {
|
||||||
@@ -54,4 +68,4 @@ public class TcpEimsSender implements EimsSender {
|
|||||||
return new String(buffer, 0, readByte, "EUC-KR");
|
return new String(buffer, 0, readByte, "EUC-KR");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user