2.3 KiB
2.3 KiB
콘텐츠 관리자 권한 및 관리자 로그인 API 추가
작업 항목
MemberRole에 콘텐츠 관리자 권한을 추가한다.- 관리자 로그인 API 테스트를 먼저 추가하고 RED를 확인한다.
- 관리자와 콘텐츠 관리자만 로그인 가능한 관리자 전용 로그인 API를 구현한다.
- 응답을
token,role만 포함하도록 구현한다. - focused test, 관련 테스트, 스타일 검사를 실행하고 결과를 기록한다.
설계
- 새 권한은 기존
MemberRoleenum에CONTENT_MANAGER로 추가한다. - 새 API는 관리자 도메인의
/admin/member/login으로 추가하고 인증 없이 호출 가능하도록 보안 설정에 permitAll을 추가한다. - 서비스는 기존 이메일/비밀번호 인증 흐름과 JWT 생성 방식을 재사용하되,
ADMIN,CONTENT_MANAGER외 역할은common.error.bad_credentials예외로 거부한다. - 응답 DTO는 관리자 로그인 전용으로 분리해
token,role만 노출한다.
검증 기록
- 2026-05-07: RED 확인:
./gradlew test --tests 'kr.co.vividnext.sodalive.admin.member.AdminMemberLoginServiceTest' --tests 'kr.co.vividnext.sodalive.admin.member.AdminMemberLoginControllerTest'실행 시AdminMemberLoginService,AdminMemberLoginController,AdminMemberLoginResponse,CONTENT_MANAGER,findByEmail미구현으로compileTestKotlin이 실패함을 확인했다. - 2026-05-07: GREEN 확인: 동일 focused test가
BUILD SUCCESSFUL로 통과해 관리자/콘텐츠 관리자 로그인 허용 및 일반 사용자 거부를 확인했다. - 2026-05-07: API 응답 확인:
./gradlew test --tests 'kr.co.vividnext.sodalive.admin.member.AdminMemberLoginControllerTest.shouldReturnTokenAndRoleJson'가BUILD SUCCESSFUL로 통과해POST /admin/member/loginJSON 응답의data.token,data.role을 확인했다. - 2026-05-07: 회귀 확인:
./gradlew test --tests 'kr.co.vividnext.sodalive.admin.member.*'가BUILD SUCCESSFUL로 통과했다. - 2026-05-07: 스타일 확인:
./gradlew ktlintCheck가BUILD SUCCESSFUL로 통과했다. - 2026-05-07: Kotlin LSP는 현재 환경에
.kt서버가 설정되어 있지 않아lsp_diagnostics실행이 불가했다. 대신 Gradle 컴파일 포함 focused/관련 test와 ktlint로 검증했다.