Spring Cloud Gateway 기반의 API Gateway 서버입니다.
- Java 21
- Spring Boot 3.2.5
- Spring Cloud Gateway 2023.0.1
- JWT (jjwt 0.12.5)
| Path | Service | 설명 |
|---|---|---|
/das/** |
Auth Server | 인증/인가 (JWT 발급) |
/login/oauth2/code/** |
Auth Server | OAuth2 콜백 |
/oab/** |
Open API Batch Server | 경매 데이터 수집/분석 |
/dcs/** |
Community Server | 게시판/댓글/사용자 관리 |
- Authorization 헤더 (
Bearer {token}) 또는 쿠키 (access_token)에서 토큰 추출 - ACCESS 토큰만 허용 (REFRESH 토큰은 인증 서버에서만 사용)
- 클라이언트가 보낸
X-Auth-*헤더 자동 제거 (보안)
허용 Origins:
https://www.memonogi.comhttps://memonogi.comhttp://localhost:*
.env.local.sample을 참고하여 .env.local 파일을 생성합니다.
cp .env.local.sample .env.local
# .env.local 파일 수정필수 환경변수:
JWT_SECRET_KEY: JWT 서명 키 (Base64 인코딩)JWT_ISSUER: JWT 발급자AUTH_SERVER_URL: 인증 서버 URLOPEN_API_BATCH_SERVER_URL: 배치 서버 URLCOMMUNITY_SERVER_URL: 커뮤니티 서버 URL
./gradlew bootRundocker-compose -f docker-compose-local.yml up -dGitHub Actions를 통해 자동 배포됩니다.
- dev 브랜치 push →
push-cd-dev.yml실행 → 개발 서버 배포 - main 브랜치 push →
push-cd-prod.yml실행 → 운영 서버 배포
docker build -t devnogi-gateway-server .GET /actuator/health
모든 Actuator 엔드포인트가 활성화되어 있습니다.
GET /actuator
src/main/java/until/the/eternity/dgs/
├── DgsApplication.java # 메인 애플리케이션
├── config/
│ └── JwtProperties.java # JWT 설정
├── filter/
│ ├── JwtAuthenticationGatewayFilterFactory.java # JWT 인증 필터
│ ├── UserContextFilter.java # 사용자 컨텍스트 필터
│ ├── RequestLoggingFilter.java # 요청 로깅 필터
│ ├── ResponseLoggingFilter.java # 응답 로깅 필터
│ └── CorsDebugFilter.java # CORS 디버그 필터
└── util/
└── JwtTokenProvider.java # JWT 유틸리티