package seed.utils; import java.util.ArrayList; import java.util.Calendar; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Random; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.springframework.ui.ModelMap; import com.fasterxml.jackson.databind.ObjectMapper; import com.ibm.icu.text.SimpleDateFormat; public class FairnetUtils { public static boolean hasAuth( int p_memberIdx , String p_memberGrant , boolean p_memberAuth , HttpSession p_session , Map p_map ) { boolean b_ret = true; //기존 권한 관리 부분을 주석 처리함 - 필요시 사용할것 //egov 권한으로 대체 예정 /* try { if(p_memberIdx == 0 || (!p_memberGrant.equals("S") && !p_memberAuth)){ setSessionRemove(p_session); p_map.put("url", "/gtm/login.do"); p_map.put("url", "/uat/uia/EgovLoginUsr.do"); p_map.put("message", "common.message.no.grant"); //return new ModelAndView("/_common/jsp/message"); b_ret = false; } }catch(Exception ex) { ex.printStackTrace(); } */ return b_ret; } public static boolean hasUserAuth( int p_memberIdx , String p_memberGrant , boolean p_memberAuth , HttpSession p_session , Map p_map ) { boolean b_ret = true; //기존 권한 관리 부분을 주석 처리함 - 필요시 사용할것 //egov 권한으로 대체 예정 /* try { if(!memberGrant.equals("S") && !memberAuthM && !memberAuth && !managerSiteMenuAuthService.getSiteMenuAuthChk(siteMenuIdx, memberIdx)){ map.put("message", "common.message.no.grant"); if(memberIdx.equals(0)){ map.put("url", "/"+siteIdx+"/index.do"); }else{ map.put("self", "history"); } //return new ModelAndView("/_common/jsp/umessage"); b_ret = false; } }catch(Exception ex) { ex.printStackTrace(); } */ return b_ret; } public static ModelMap myCheck( ModelMap p_map , HttpSession p_session ) { boolean b_ret = true; //인증여부 체크용 /* try { if(SeedUtils.setReplaceNull(p_session.getAttribute("hpName")).equals("")){ p_map.put("siteIdx", "case"); p_map.put("url", "/web/user/mypage/case/01/168/myCheck.do"); p_map.put("message", "common.message.my.check"); p_map.put("opener", ""); p_map.put("append", ""); p_map.put("self", ""); b_ret = false; } }catch(Exception ex) { ex.printStackTrace(); } */ p_map.put("b_ret", b_ret); return p_map; } public static void certSet(ModelMap map, HttpServletRequest req, HttpSession session,String commandCode ) { //실서버 String hpSrvNo = CertGlobalSet.getHpSrvNo(); String hpRetUrl = CertGlobalSet.getHpRetUrl() + "/web/user/siren/case/04/154/check.do";//모바일 인증후 리턴 페이지 //날짜 생성 Calendar today = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); String day = sdf.format(today.getTime()); java.util.Random ran = new Random(); //랜덤 문자 길이 int numLength = 6; String randomStr = ""; for (int i = 0; i < numLength; i++) { //0 ~ 9 랜덤 숫자 생성 randomStr += ran.nextInt(10); } String hpId = "SKFA001"; // 본인실명확인 회원사 아이디 String hpReqNum = day + randomStr; // 본인실명확인 요청번호 String hpExVar = "0000000000000000"; // 복호화용 임시필드 String hpCertDate = day; // 본인실명확인 요청시간 String hpCertGb = "H"; // 본인실명확인 본인확인 인증수단 String hpAddVar = ""; // 본인실명확인 추가 파라메터 req.getSession().setAttribute("hpReqNumKey", hpReqNum); // 결과값 복호화시 필요 //01. 암호화 모듈 선언 com.sci.v2.pcc.secu.SciSecuManager hpSeed = new com.sci.v2.pcc.secu.SciSecuManager(); //02. 1차 암호화 String hpEncStr = ""; String hpReqInfo = hpId+"^"+hpSrvNo+"^"+hpReqNum+"^"+hpCertDate+"^"+hpCertGb+"^"+hpAddVar+"^"+hpExVar; // 데이터 암호화 hpEncStr = hpSeed.getEncPublic(hpReqInfo); //03. 위변조 검증 값 생성 com.sci.v2.pcc.secu.hmac.SciHmac hpHmac = new com.sci.v2.pcc.secu.hmac.SciHmac(); String hpHmacMsg = hpHmac.HMacEncriptPublic(hpEncStr); //03. 2차 암호화 hpReqInfo = hpSeed.getEncPublic(hpEncStr + "^" + hpHmacMsg + "^" + "0000000000000000"); //2차암호화 req.getSession().setAttribute("hpRetUrl", hpRetUrl); req.getSession().setAttribute("hpReqInfo", hpReqInfo); /** * 핸드폰 인증 끝 */ } /*첨부파일 목록의 정보를 이노릭스 화면에서 사용하기 위한 정보로 리턴*/ public static String innorixFileListInfo(List> fileList) throws Exception { List> innorixFileListInfo = new ArrayList<>(); for (Map file : fileList) { Map innorixFileInfo = new HashMap<>(); innorixFileInfo.put("printFileName", file.get("EXTRA_FILE_NAME")); innorixFileInfo.put("fileSize", file.get("EXTRA_FILE_SIZE")); innorixFileInfo.put("dataIdx", file.get("EXTRA_FILE_IDX")); innorixFileInfo.put("downloadUrl", "notUse"); //해당 값 없으면 목록이 안나와 임시로 사용 innorixFileListInfo.add(innorixFileInfo); } ObjectMapper objectMapper = new ObjectMapper(); String innorixFileListInfoStr = objectMapper.writeValueAsString(innorixFileListInfo); return innorixFileListInfoStr; } /** * @methodName : certSessionSet * @author : JunHo Lee * @date : 2024.11.27 * @description : * @param reqeust * @param certNm - 이름 * @param certNo - 휴대폰 번호 */ public static void certSessionSet( HttpServletRequest reqeust , String certNm , String certHpNo ) { HttpSession session = reqeust.getSession(); session.setAttribute("certNm", certNm); session.setAttribute("certHpNo", certHpNo); session.setMaxInactiveInterval(60*60*2); } }