19b26ebe37
- users: 소셜 전용 전환(password_hash 제거) + role/provider/google_id/apple_id/profile_image (V2 마이그레이션) - auth_session 테이블: Redis 없이 DB 세션(슬라이딩 만료), Bearer 토큰 - 소셜 로그인: 구글 tokeninfo(aud) · 애플 JWKS(iss/aud/exp) 검증 → 이메일 계정연결/신규가입 - AuthInterceptor(세션)+AdminInterceptor(role=ADMIN) 2단 보호, 관리자 페이지는 웹 전용 - /api/admin/members: 목록·상태·티어·역할·삭제 (본인 잠금방지, 정지/삭제/역할변경 시 세션 무효화) - 예외는 기존 ApiExceptionHandler로 통합(ApiException 매핑 추가) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
43 lines
1.2 KiB
YAML
43 lines
1.2 KiB
YAML
spring:
|
|
application:
|
|
name: dognation
|
|
|
|
datasource:
|
|
# DB 접속정보는 .env.dev / .env.prod 에서 주입 (POSTGRES_DB, SPRING_DATASOURCE_*)
|
|
url: jdbc:postgresql://${DB_HOST:localhost}:${DB_PORT:5432}/${POSTGRES_DB:dogdb_dev}
|
|
username: ${SPRING_DATASOURCE_USERNAME:dognation}
|
|
password: ${SPRING_DATASOURCE_PASSWORD:}
|
|
driver-class-name: org.postgresql.Driver
|
|
|
|
jpa:
|
|
hibernate:
|
|
ddl-auto: validate # 스키마는 Flyway가 관리, JPA는 검증만
|
|
properties:
|
|
hibernate:
|
|
format_sql: true
|
|
dialect: org.hibernate.dialect.PostgreSQLDialect
|
|
open-in-view: false
|
|
|
|
flyway:
|
|
enabled: true
|
|
baseline-on-migrate: true
|
|
locations: classpath:db/migration
|
|
|
|
# 스케줄러/시간 기준: 한국 시간(KST) 자정
|
|
app:
|
|
scheduler:
|
|
timezone: Asia/Seoul
|
|
matching:
|
|
daily-free-limit: 3
|
|
# 소셜 로그인 — 값은 .env 에서 주입. 미설정 시 해당 로그인 비활성.
|
|
auth:
|
|
google-client-id: ${GOOGLE_CLIENT_ID:} # 구글 OAuth 웹 클라이언트 ID (ID 토큰 aud 검증)
|
|
apple-client-id: ${APPLE_CLIENT_ID:} # Sign in with Apple aud(앱 번들 ID)
|
|
|
|
server:
|
|
port: 8080
|
|
|
|
logging:
|
|
level:
|
|
org.hibernate.SQL: debug
|