package egovframework.com.cmm.util; import java.util.List; import org.apache.commons.lang3.StringUtils; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import egovframework.com.cmm.service.EgovUserDetailsService; /** * EgovUserDetails Helper 클래스 * * @author sjyoon * @since 2009.06.01 * @version 1.0 * @see * *
 * << 개정이력(Modification Information) >>
 *
 *   수정일      수정자           수정내용
 *  -------    -------------    ----------------------
 *   2009.03.10  sjyoon         최초 생성
 *   2011.07.01	 서준식          interface 생성후 상세 로직의 분리
 * 
*/ public class EgovUserDetailsHelper { private static final String LOGIN_URL = "/uat/uia/egovLoginUsr.do"; private static final String INDEX_URL = "/index.do"; private static final String ADMIN_URL = "/admin/index.do"; private static final String LOGIN_ADMIN_URL = "/uat/uia/egovLoginUsr.do"; static EgovUserDetailsService egovUserDetailsService; public EgovUserDetailsService getEgovUserDetailsService() { return egovUserDetailsService; } public void setEgovUserDetailsService(EgovUserDetailsService egovUserDetailsService) { EgovUserDetailsHelper.egovUserDetailsService = egovUserDetailsService; } /** * 인증된 사용자객체를 VO형식으로 가져온다. * @return Object - 사용자 ValueObject */ public static Object getAuthenticatedUser() { return egovUserDetailsService.getAuthenticatedUser(); } /** * 인증된 사용자의 권한 정보를 가져온다. * * @return List - 사용자 권한정보 목록 */ public static List getAuthorities() { return egovUserDetailsService.getAuthorities(); } /** * 인증된 사용자 여부를 체크한다. * @return Boolean - 인증된 사용자 여부(TRUE / FALSE) */ public static Boolean isAuthenticated() { return egovUserDetailsService.isAuthenticated(); } /** * 특정 권한 여부를 체크한다. * @Author : 임종호 * @Date : 2021. 7. 5. * @Method Name : isRole * @return : Boolean - 특정 권한 여부 (true / false) */ public static Boolean isRole(final String strAutho) { if (StringUtils.isBlank(strAutho)) { return false; } List authorList = getAuthorities (); if (authorList != null) { for (String s : authorList) { if (s.indexOf (strAutho) != -1) { return true; } } } return false; } /** * 특정 권한 배열 여부를 체크한다. * @Author : 임종호 * @Date : 2021. 7. 5. * @Method Name : isRole * @return : Boolean - 특정 권한 여부 (true / false) */ public static Boolean isRole(final String[] arrAutho) { if (arrAutho.length == 0) { return false; } List authorList = getAuthorities (); if (authorList != null) { for (String s : authorList) { for (String a : arrAutho) { if (s.indexOf (a) != -1) { return true; } } } } return false; } /** * 관리자 권한 확인 * @Author : 임종호 * @Date : 2022. 2. 7 * @Method Name : isRoleAdmin * @return : Boolean */ public static Boolean isRoleAdmin() { String role = Authory.ROLE_ADMIN; return isRole(role); } /** * 로그인 페이지 이동 * @Author : 임종호 * @Date : 2021. 7. 5. * @Method Name : getLoginPage * @return : String */ public static String getLoginPage() { return "redirect:" + getContextPath() + LOGIN_URL; } /** * Index 페이지 이동 * @Author : 임종호 * @Date : 2021. 9. 27. * @Method Name : getIndexPage * @return : String */ public static String getIndexPage() { return "redirect:" + getContextPath() + INDEX_URL; } /** * 관리자 페이지 이동 * @Author : 임종호 * @Date : 2021. 9. 27. * @Method Name : getAdminPage * @return : String */ public static String getAdminPage() { return "redirect:" + getContextPath() + ADMIN_URL; } /** * 관리자 로그인 이동 * @Author : 임종호 * @Date : 2021. 9. 27. * @Method Name : getAdminLogin * @return : String */ public static String getAdminLogin() { return "redirect:" + getContextPath() + LOGIN_ADMIN_URL; } /** * contextPath 반환(request 없을때) * @Author : 임종호 * @Date : 2022. 2. 8 * @Method Name : getContextPath * @return : String */ public static String getContextPath() { ServletRequestAttributes attr = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes(); String contextPath = attr.getRequest().getContextPath(); return contextPath; } }