From 5ea9da51175e750b01af3d73f91ddad98e424648 Mon Sep 17 00:00:00 2001 From: Rinjae Date: Fri, 30 Jan 2026 15:21:12 +0900 Subject: [PATCH] =?UTF-8?q?kjbank.com=20=EB=8F=84=EB=A9=94=EC=9D=B8=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apim/portal/common/util/UserTypeUtil.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/main/java/com/eactive/apim/portal/common/util/UserTypeUtil.java diff --git a/src/main/java/com/eactive/apim/portal/common/util/UserTypeUtil.java b/src/main/java/com/eactive/apim/portal/common/util/UserTypeUtil.java new file mode 100644 index 0000000..221d879 --- /dev/null +++ b/src/main/java/com/eactive/apim/portal/common/util/UserTypeUtil.java @@ -0,0 +1,38 @@ +package com.eactive.apim.portal.common.util; + +import com.eactive.apim.portal.common.user.PortalAuthenticatedUser; +import org.apache.commons.lang3.StringUtils; + +/** + * 사용자 유형 판별 유틸리티 + * 내부 운영자와 외부 사용자를 구분하는 공통 로직 제공 + */ +public final class UserTypeUtil { + + private UserTypeUtil() { + throw new IllegalStateException("Utility class"); + } + + private static final String INTERNAL_EMAIL_DOMAIN = "@kjbank.com"; + + /** + * 현재 사용자가 내부 운영자인지 확인 + * @param user 인증된 사용자 정보 + * @return 내부 운영자 여부 + */ + public static boolean isInternalUser(PortalAuthenticatedUser user) { + if (user == null || StringUtils.isEmpty(user.getEmailAddr())) { + return false; + } + return user.getEmailAddr().toLowerCase().endsWith(INTERNAL_EMAIL_DOMAIN); + } + + /** + * 현재 로그인한 사용자가 내부 운영자인지 확인 + * @return 내부 운영자 여부 + */ + public static boolean isCurrentUserInternal() { + PortalAuthenticatedUser user = SecurityUtil.getPortalAuthenticatedUser(); + return isInternalUser(user); + } +}