세상의 모든 서비스
-광주은행 API가 함께 합니다.
+DJBank API가 함께 합니다.
diff --git a/CLAUDE.md b/CLAUDE.md
index 5c589d1..c77b7c8 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -8,7 +8,7 @@
**기술 스택:**
- Spring Boot 2.7.18 with Spring MVC and Thymeleaf
-- Java 8 (targetCompatibility: 1.8)
+- Java 8 (sourceCompatibility/targetCompatibility: 1.8)
- Gradle 8.7 빌드 시스템
- Oracle 19c 데이터베이스 (JNDI를 통한 이중 데이터소스)
- Spring Security (커스텀 인증)
@@ -59,7 +59,7 @@ git push origin jenkins_with_weblogic
### 애플리케이션 실행
- gradlew 사용 금지 - offline gradle 단독 실행
-- msi-gf63 컴퓨터에서는 /c/eactive/workspaces/shell-scripts/kjb-gradle.sh 로 gradle 실행 (jdk, gradle 등 환경 변수 세팅 후 gradle 실행하는 스크립트)
+- JDK/Gradle 환경 변수는 저장소 루트의 `.envrc`(direnv)로 자동 설정됨 (JAVA_HOME → Zulu JDK 8, GRADLE_USER_HOME → 격리 디렉터리)
```bash
# dev 프로파일로 실행 (기본값)
diff --git a/README.md b/README.md
index 1417139..0af8879 100644
--- a/README.md
+++ b/README.md
@@ -90,10 +90,7 @@ export GIT_REPO_BASE="ssh://git@192.168.240.178:18081/eapim"
# export GIT_REPO_BASE="https://git.eactive.synology.me:8090/kjb-eapim"
# Gradle 명령어 설정
-# 일반 환경: gradle
-# msi-gf63 환경: /c/eactive/workspaces/shell-scripts/kjb-gradle.sh
export GRADLE_CMD="gradle"
-# export GRADLE_CMD="/c/eactive/workspaces/shell-scripts/kjb-gradle.sh"
# ====================================
# 2. 작업 디렉토리 생성
@@ -128,12 +125,6 @@ git clone ${GIT_REPO_BASE}/elink-portal-common.git
cd elink-portal-common
git checkout master # 또는 필요한 브랜치
-# kjb-safedb 클론
-cd $WORKSPACE_DIR
-git clone ${GIT_REPO_BASE}/kjb-safedb.git
-cd kjb-safedb
-git checkout master # 또는 필요한 브랜치
-
# ====================================
# 6. 최종 폴더 구조 확인
# ====================================
@@ -142,7 +133,6 @@ git checkout master # 또는 필요한 브랜치
# ├── eapim-online/
# │ └── elink-online-core-jpa/
# ├── elink-portal-common/
-# └── kjb-safedb/
# ====================================
# 7. eapim-portal 프로젝트로 이동 및 디펜던시 다운로드
@@ -169,10 +159,7 @@ set GIT_REPO_BASE=ssh://git@192.168.240.178:18081/eapim
REM set GIT_REPO_BASE=https://git.eactive.synology.me:8090/kjb-eapim
REM Gradle 명령어 설정
-REM 일반 환경: gradle
-REM msi-gf63 환경: C:\eactive\workspaces\shell-scripts\kjb-gradle.sh
set GRADLE_CMD=gradle
-REM set GRADLE_CMD=C:\eactive\workspaces\shell-scripts\kjb-gradle.sh
REM ====================================
REM 2. 작업 디렉토리 생성
@@ -207,12 +194,6 @@ git clone %GIT_REPO_BASE%/elink-portal-common.git
cd elink-portal-common
git checkout master
-REM kjb-safedb 클론
-cd /d "%WORKSPACE_DIR%"
-git clone %GIT_REPO_BASE%/kjb-safedb.git
-cd kjb-safedb
-git checkout master
-
REM ====================================
REM 6. 최종 폴더 구조 확인
REM ====================================
@@ -221,7 +202,6 @@ REM ├── eapim-portal\
REM ├── eapim-online\
REM │ └── elink-online-core-jpa\
REM ├── elink-portal-common\
-REM └── kjb-safedb\
REM ====================================
REM 7. eapim-portal 프로젝트로 이동 및 디펜던시 다운로드
@@ -253,30 +233,19 @@ REM Gradle 디펜던시 다운로드
- **gradlew 사용 금지**: 반드시 시스템에 설치된 gradle을 직접 사용하거나 환경에 맞는 스크립트를 사용하세요
- **Gradle 명령어 변수화**: 위의 `GRADLE_CMD` 변수를 설정하면 환경별로 다른 gradle 명령어 사용 가능
-- **SafeDB**: 암호화 기능이 필요한 경우 kjb-safedb 모듈 설정 확인
## 빌드 및 실행
### Gradle 명령어 설정
-사용 환경에 따라 적절한 gradle 명령어를 설정하세요:
-
**Git Bash:**
```bash
-# 일반 환경
export GRADLE_CMD="gradle"
-
-# msi-gf63 환경
-export GRADLE_CMD="/c/eactive/workspaces/shell-scripts/kjb-gradle.sh"
```
**Windows CMD:**
```cmd
-REM 일반 환경
set GRADLE_CMD=gradle
-
-REM msi-gf63 환경
-set GRADLE_CMD=C:\eactive\workspaces\shell-scripts\kjb-gradle.sh
```
### 빌드 및 실행 명령어
@@ -310,7 +279,6 @@ kjb-eapim/
├── eapim-online/ # Online 프로젝트
│ └── elink-online-core-jpa/ # Gateway 데이터 모델
├── elink-portal-common/ # 공통 유틸리티
-└── kjb-safedb/ # SafeDB 암호화 라이브러리
```
### eapim-portal 내부 구조
@@ -327,7 +295,6 @@ src/main/java/com/eactive/apim/portal/
이 프로젝트는 다음 모듈에 의존합니다 (settings.gradle 참조):
- `eapim-online/elink-online-core-jpa`: Gateway 데이터 모델 (../eapim-online/elink-online-core-jpa)
- `elink-portal-common`: 공통 유틸리티 (../elink-portal-common)
-- `kjb-safedb`: SafeDB 암호화 라이브러리 (../kjb-safedb)
## SASS / CSS 스타일 개발
@@ -532,8 +499,6 @@ ls -lh src/main/resources/static/css/main.min.css # minified
- 사용자 관리 (내부/기업)
- API 키 관리 및 승인 워크플로우
-- API 카탈로그 및 문서화
-- API 테스트 프록시
- 감사 추적 (Hibernate Envers)
## 배포
@@ -543,22 +508,6 @@ ls -lh src/main/resources/static/css/main.min.css # minified
- WebLogic
- Tomcat (내장)
-### Docker
-```bash
-./build_docker.sh
-docker run -p 8080:8080 eapim-portal:latest
-```
-
-## 관련 프로젝트
-
-프로젝트 구조 (kjb-eapim 디렉토리 기준):
-- `eapim-portal/` - Portal 웹 애플리케이션 (현재 프로젝트)
-- `eapim-online/` - Online 프로젝트 (elink-online-core-jpa 포함)
-- `elink-portal-common/` - 공통 유틸리티 라이브러리
-- `kjb-safedb/` - SafeDB 암호화 라이브러리
-- `eapim-admin/` - Admin 포털 (선택사항)
-- `kjb-eapim-sql/` - SQL 스크립트 (선택사항)
-
## 문서
- **프로젝트 상세 지침**: `CLAUDE.md` (한글)
diff --git a/build.gradle b/build.gradle
index 918045e..6358b69 100644
--- a/build.gradle
+++ b/build.gradle
@@ -128,11 +128,13 @@ bootRun {
}
+// annotation processor 출력 디렉토리는 IntelliJ/Gradle 통합이 자동 등록함.
+// 명시적으로 srcDir 추가하면 IntelliJ idea 모드에서 MapStruct가 같은 파일을
+// 중복 생성하려다 javax.annotation.processing.FilerException 발생함.
sourceSets {
main {
java {
srcDir 'src/main/java'
- srcDir 'build/generated/sources/annotationProcessor/java/main'
}
}
}
@@ -181,20 +183,4 @@ task printSourceSets {
println " Output dir : ${srcSet.output.classesDirs.asPath}"
}
}
-}
-
-// CryptoCli 실행 task (bcrypt 지원)
-task cryptoCli(type: JavaExec) {
- mainClass = 'com.eactive.ext.kjb.safedb.CryptoCli'
- classpath = sourceSets.main.runtimeClasspath
- standardInput = System.in
-
- // SafeDB 라이브러리 경로 추가 (리눅스)
- classpath += files("/safedb/JavaAPI/config")
- classpath += fileTree(dir: "/safedb/JavaAPI/lib", include: ["*.jar"])
-
- // CLI 인자 전달: ./gradlew cryptoCli --args="bcrypt hash password123"
- if (project.hasProperty('args')) {
- args project.args.split('\\s+')
- }
}
\ No newline at end of file
diff --git a/src/main/java/com/eactive/apim/portal/apps/auth/service/ApiPermissionFilter.java b/src/main/java/com/eactive/apim/portal/apps/auth/service/ApiPermissionFilter.java
index 3de31b3..3f3066d 100644
--- a/src/main/java/com/eactive/apim/portal/apps/auth/service/ApiPermissionFilter.java
+++ b/src/main/java/com/eactive/apim/portal/apps/auth/service/ApiPermissionFilter.java
@@ -3,8 +3,9 @@ package com.eactive.apim.portal.apps.auth.service;
import com.eactive.apim.portal.apps.apis.dto.ApiSpecInfoDto;
import com.eactive.apim.portal.apps.apiservice.dto.ApiServiceDTO;
+import com.eactive.apim.portal.apps.user.dto.PortalOrgDTO;
+import com.eactive.apim.portal.common.user.PortalAuthenticatedUser;
import com.eactive.apim.portal.common.util.SecurityUtil;
-import lombok.var;
import java.util.List;
import java.util.stream.Collectors;
@@ -18,12 +19,12 @@ public class ApiPermissionFilter {
if (isAuthenticated) {
// null 체크 추가
- var user = SecurityUtil.getPortalAuthenticatedUser();
+ PortalAuthenticatedUser user = SecurityUtil.getPortalAuthenticatedUser();
if (user != null && user.getRoleCode() != null) {
roleCode = user.getRoleCode().toString();
}
- var userOrg = SecurityUtil.getUserOrg();
+ PortalOrgDTO userOrg = SecurityUtil.getUserOrg();
if (userOrg != null) {
org = userOrg.getId();
}
@@ -44,12 +45,12 @@ public class ApiPermissionFilter {
if (isAuthenticated) {
// null 체크 추가
- var user = SecurityUtil.getPortalAuthenticatedUser();
+ PortalAuthenticatedUser user = SecurityUtil.getPortalAuthenticatedUser();
if (user != null && user.getRoleCode() != null) {
roleCode = user.getRoleCode().toString();
}
- var userOrg = SecurityUtil.getUserOrg();
+ PortalOrgDTO userOrg = SecurityUtil.getUserOrg();
if (userOrg != null) {
org = userOrg.getId();
}
diff --git a/src/main/java/com/eactive/apim/portal/apps/user/controller/AccountController.java b/src/main/java/com/eactive/apim/portal/apps/user/controller/AccountController.java
index e7dcd34..67ad0f1 100644
--- a/src/main/java/com/eactive/apim/portal/apps/user/controller/AccountController.java
+++ b/src/main/java/com/eactive/apim/portal/apps/user/controller/AccountController.java
@@ -24,7 +24,6 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import lombok.RequiredArgsConstructor;
-import lombok.var;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.ResponseEntity;
@@ -252,7 +251,7 @@ public class AccountController {
@GetMapping("/mypage/org-transfer")
public String showOrgTransferPage(Model model) {
try {
- var authenticatedUser = SecurityUtil.getPortalAuthenticatedUser();
+ PortalAuthenticatedUser authenticatedUser = SecurityUtil.getPortalAuthenticatedUser();
PortalUserDTO user = userFacade.findById(authenticatedUser.getId());
if (user.getRoleCode() != PortalUserEnums.RoleCode.ROLE_USER) {
@@ -282,7 +281,7 @@ public class AccountController {
HttpServletResponse response) {
Map 우61470 광주광역시 동구 제봉로 225 전화 (062)239-6722 FAX (062)239-6719 오픈뱅크 플랫폼 담당자 세상의 모든 서비스 광주은행 API가 함께 합니다. DJBank API가 함께 합니다.
-
+
+
- 광주은행 API Portal은 기업이 금융 서비스를 편리하게 개발할 수 있도록 차별화된 API와 테스트환경을 제공합니다. + DJBank API Portal은 기업이 금융 서비스를 편리하게 개발할 수 있도록 차별화된 API와 테스트환경을 제공합니다.
광주은행 API의 새로운 소식
-광주은행 API의
새로운 소식
DJBank API의 새로운 소식
+DJBank API의
새로운 소식
에서 - 광주은행 API Portal 법인회원으로 초대하였습니다. + DJBank API Portal 법인회원으로 초대하였습니다.
초대를 수락하시면 법인회원으로 전환됩니다. diff --git a/src/main/resources/templates/views/apps/service/guide.html b/src/main/resources/templates/views/apps/service/guide.html index 27bad5a..c0f054c 100644 --- a/src/main/resources/templates/views/apps/service/guide.html +++ b/src/main/resources/templates/views/apps/service/guide.html @@ -11,8 +11,8 @@
광주은행 API 개발자 포털에 방문해 주셔서 감사합니다.
-광주은행 API 사용을 위해서는 다음과 같은 이용절차로 진행하여야 합니다.
+DJBank API 개발자 포털에 방문해 주셔서 감사합니다.
+DJBank API 사용을 위해서는 다음과 같은 이용절차로 진행하여야 합니다.
- 광주은행이 제공하는 오픈API를 활용하여 핀테크 기업들이 새로운 금융서비스를 편리하게 개발할 수 있는 환경입니다. + DJBank이 제공하는 오픈API를 활용하여 핀테크 기업들이 새로운 금융서비스를 편리하게 개발할 수 있는 환경입니다.