법인 로그인 차단 로직 개선:
eapim-portal CI / build (push) Has been cancelled
eapim-portal Test / test (push) Has been cancelled

- ACTIVE 외 상태(휴면/탈퇴/준비) 로그인 제한 처리 추가
- 승인 미완료 예외 케이스 방어 로직 강화
This commit is contained in:
Rinjae
2026-07-28 15:38:18 +09:00
parent a2f6151a08
commit 87369ce7f7
@@ -79,12 +79,21 @@ public class PortalAuthenticationManager implements AuthenticationManager {
}
if (user.getPortalOrg() != null) {
// 삭제(탈퇴)된 법인 소속 사용자는 2FA 이전에 로그인 차단
if (PortalOrgEnums.OrgStatus.REMOVED.equals(user.getPortalOrg().getOrgStatus())) {
log.debug("삭제된 법인 소속 로그인 차단 - user : {} / org.orgStatus : {}", user.getUsername(), user.getPortalOrg().getOrgStatus());
throw new DisabledException("삭제된 법인의 계정입니다. 로그인할 수 없습니다.");
// 법인은 "정상(ACTIVE)" 상태에서만 로그인 허용 (준비/탈퇴/휴면 차단, 2FA 이전 단계)
PortalOrgEnums.OrgStatus orgStatus = user.getPortalOrg().getOrgStatus();
if (!PortalOrgEnums.OrgStatus.ACTIVE.equals(orgStatus)) {
log.debug("법인 비정상 상태 로그인 차단 - user : {} / org.orgStatus : {}", user.getUsername(), orgStatus);
if (PortalOrgEnums.OrgStatus.REMOVED.equals(orgStatus)) {
throw new DisabledException("삭제된 법인의 계정입니다. 로그인할 수 없습니다.");
}
if (PortalOrgEnums.OrgStatus.INACTIVE.equals(orgStatus)) {
throw new DisabledException("휴면 상태의 법인입니다. 관리자에게 문의하세요.");
}
// READY 등 승인 전 상태
throw new DisabledException("로그인할 수 없습니다. 관리자에게 문의하세요. (법인 승인대기중)");
}
// 방어적: ACTIVE 인데 승인 미완료인 예외 케이스 차단
if (!user.getPortalOrg().getApprovalStatus().equals(PortalOrgEnums.ApprovalStatus.COMPLETED)) {
log.debug("기업사용자 - getApprovalStatus : {} / - org.approvalStatus : {}", user.getApprovalStatus(), user.getPortalOrg().getApprovalStatus());
throw new DisabledException("로그인할 수 없습니다. 관리자에게 문의하세요. (법인 승인대기중)");