Skip to content

fix: preserve Auth migration history and verification consistency - #38

Merged
dev-ant merged 5 commits into
devfrom
fix/auth-main-promotion-v6
Oct 27, 2026
Merged

dev-ant merged 5 commits into
devfrom
fix/auth-main-promotion-v6

Conversation

@dev-ant

@dev-ant dev-ant commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

Scope

Approved Auth v6 hardening (SHA-256 66637e6b917a7a29a49e8dc351617e76d2a06ea31a3a177367aa6f34dcc68cf5). Restore original main Flyway V migration, add fresh-install B baseline, persist expected login failure history, and serialize game verification token/proof handling.

Verification

  • Java 21 gradlew.bat verify --no-daemon: passed.
  • Secret scan: 0 findings; deployment workflow tests: 5/5.
  • MySQL 8.0.42: main-history upgrade/fresh baseline 1/1, verification concurrency 10/10, v5 regression suites 16/16; login lockout suite passed.
  • git diff --check: passed.

Merge gate

Independent review and current-head CI pending. Deployed DB flyway_schema_history must be checked read-only before Auth #34 dev→main promotion; if unknown or altered dev checksum exists, stop. No production deployment.

@dev-ant
dev-ant marked this pull request as ready for review October 27, 2026 04:28
@dev-ant
dev-ant merged commit 5782c8c into dev Oct 27, 2026
2 checks passed
@dev-ant
dev-ant deleted the fix/auth-main-promotion-v6 branch October 27, 2026 04:28
dev-ant added a commit that referenced this pull request Oct 27, 2026
* fix: ouath2 리다이렉팅 주소 반환하게 변경 (#18)

* fix: 소셜로그인 관련 로직 수정

* fix: 서버 시간 KST로 설정

* fix: MinIO사용 삭제 로직으로 변경

* fix: application파일 수정

* feat: 운영서버 CI/CD 파이프라인

* fix: 불필요한 주석 삭제

* fix: ouath2 리다이렉팅 주소 반환하게 변경

* fix: 배포 관련 로직 수정

* fix: OAuth2SuccessHandler 수정

* feat: gitignore 업데이터

* infra: 배포 테스트용 prod cd 임시 수정

* fix: redirect-url base value 수정

* fix: redirect url base value 오타 수정

* fix: jwt cookie에 도메인 지정

* feat: JWT 로그아웃 엔드포인트 추가 (리프레시 토큰 무효화 및 쿠키 삭제)

---------

Co-authored-by: 장욱 <janguk95@naver.com>

* feat: JWT refresh API 구현 (#19)

* feat: refresh token api 구현

* feat: auth 기존 테스트 코드 수정

* fix: optimize imports

* fix: 사용자 관련 response수정 (#20)

* fix: 사용자 관련 response에서 role과 id를 반환하도록 수정

* fix: 엔티티를 직접 반환하지 않도록 수정

* fix: toString() 대신에 name()을 사용하도록 변경

* fix: cookie util maxAge를 밀리초에서 초로 변경 (#21)

* feat: 사용자 인증 Kafka 메시지 반영 기능 구현 (#22)

* feat: 사용자 인증 정보 Kafka 메시지 수신 기능 구현

* feat: docker-compose-local Kafka env 추가

* feat: 인증 사용자 닉네임 변경 제한 및 인증 요약 조회 Public API 추가 (#23)

* feat: 인증된 사용자 정보 수정 차단

* feat: 사용자 인증 정보를 API 응답값에 추가

* feat: 사용자 인증 시 사용자명, 서버명 변경 불가능하게 수정

* feat: 사용자 인증 관련 커스텀 예외 처리 추가

* chore: gitignore에 env 파일 추가

* feat: 사용자 인증 Swagger Annotation 추가

* fix: AuthService 사용자 닉네임 regexp 패턴 수정

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* feat: 사용자 인증 카프카 메시지 prefix 제거 및 로그 추가 (#24)

* fix: 사용자 인증 시 인증값에서 prefix 제거하게 변경

* chore: 사용자 인증 카프카 로그 추가

* Feat: 랜덤 닉네임 생성 기능 외 1개 (#26)

* feat: 랜덤 닉네임 생성 API 구현

* feat: 계정 인증이 발생했을 때 닉네임을 계정 내 닉네임으로 바꾸는 기능 구현

* fix: copilot 수정사항

* feat: 유저 테이블 내 닉네임 유니크 제약 제거 및 (닉네임, 서버이름) 복합 유니크 제약 추가

* feat: 에러 발생 시에도 로그 테이블에 저장할 수 있도록 서비스 로직 분리

* feat: 기존 유저 미인증 처리 로직 구현 및 유저업데이트 이벤트 항목 추가

* Update src/main/resources/db/migration/V20260323112331__add_composite_unique_to_user.sql

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: 직업 이름 사이의 공백 제거

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: 소셜 회원가입 및 회원가입 시에도 카프카에 유저 정보를 전송하는 기능 추가 (#25)

* Hotfix: Index로 수정한 부분을 Constraint로 원복 (#27)

* feat: 랜덤 닉네임 생성 API 구현

* feat: 계정 인증이 발생했을 때 닉네임을 계정 내 닉네임으로 바꾸는 기능 구현

* fix: copilot 수정사항

* feat: 유저 테이블 내 닉네임 유니크 제약 제거 및 (닉네임, 서버이름) 복합 유니크 제약 추가

* feat: 에러 발생 시에도 로그 테이블에 저장할 수 있도록 서비스 로직 분리

* feat: 기존 유저 미인증 처리 로직 구현 및 유저업데이트 이벤트 항목 추가

* Update src/main/resources/db/migration/V20260323112331__add_composite_unique_to_user.sql

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: 직업 이름 사이의 공백 제거

* fix: INDEX를 CONSTRAINT로 변경

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* chore: enable manual production deployment

* ci: add verified development workflow and isolate deployments (#30)

* fix: restore local email login and auth cookie contract (#31)

* fix: restore fresh local email login and cookie contract

* docs: state observed token error contract precisely

* docs: match protected API token error mapping

* feat: require issued random nicknames before game verification (#33)

* feat: require issued random nicknames

* fix: guide old signup pages and verify nickname races

* fix(auth): harden OAuth signup and gate production deploy (#35)

* fix(auth)!: require verified OAuth proof for social signup

Exchange a browser-bound one-time code and consume a server-verified signup proof. Remove identity data from OAuth redirects and reject unverified legacy requests.

Approved spec: auth-main-promotion-hardening v1, SHA-256 c9039c662b210f5f338214f29c9a8af97a47c8aeb17cf0bfd254a539832c916f.

BREAKING CHANGE: Social signup requires signupProof from OAuth exchange. Deploy the compatible React consumer before activating the new Auth version.

* ci: pin manual auth deployment and verify preflight

Use immutable image digests and pinned SSH actions, transfer secrets outside logged scripts, and stop before replacement when required configuration is unverified.

Approved spec: auth-main-promotion-hardening v1, SHA-256 c9039c662b210f5f338214f29c9a8af97a47c8aeb17cf0bfd254a539832c916f. Production deployment remains manual.

* fix: validate auth production JWT and cookie settings

* fix: require Lax production auth cookies

* ci: allow manual dev deployment through 2026-12-31 (#32)

* fix(auth): protect refresh rotation and long token storage (#36)

* fix(auth): protect verification logs and refresh rotation

* fix(auth): persist long refresh tokens and serialize logins

* test(auth): remove trailing whitespace in nickname case (#37)

* fix: preserve Auth migration history and verification consistency (#38)

* fix: preserve auth migration history and verification consistency

* test: capture verification attempt logs in regression tests

* fix: preserve Flyway history and lock timing

* test: assert default role conflict signal

* test: make token expiry lock ordering atomic

---------

Co-authored-by: 장욱 <janguk95@naver.com>
Co-authored-by: guite95 <rlvlrkdlxm@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant