법인 로그인 차단 로직 개선:
- ACTIVE 외 상태(휴면/탈퇴/준비) 로그인 제한 처리 추가 - 승인 미완료 예외 케이스 방어 로직 강화
This commit is contained in:
@@ -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("로그인할 수 없습니다. 관리자에게 문의하세요. (법인 승인대기중)");
|
||||
|
||||
Reference in New Issue
Block a user