아이디 생성후 또는 비밀번호를 변경후 정해진 기간이 경과하면 비밀번호 변경을 요청한다.
계정별 비밀번호 생성 또는 변경일시는 DB테이블의 컬럼에 저장되며 지정된 기간이 경과하면 로그인시 체크하여 변경을 요청한다.
유형 | 대상소스 | 설명 | 비고 |
---|---|---|---|
Controller | egovframework.com.cmm.web.EgovComIndexController.java | 초기 컨텐츠표시 Controller | 시간관리 표시 |
Service | egovframework.com.uat.uia.service.EgovLoginService | 비밀번호 만료 및 로그인 관련 서비스 인터페이스 | |
ServiceImpl | egovframework.com.uat.uia.service.impl.EgovLoginServiceImpl | 비밀번호 만료 및 로그인 관련 서비스 구현 클래스 | |
DAO | egovframework.com.uat.uia.service.impl.EgovLoginServiceImpl | 비밀번호 만료 및 로그인위한 데이터처리 클래스 | |
JSP | /WEB-INF/jsp/egovframework/com/cmm/EgovUnitContent.jsp | 초기 컨텐츠표시 페이지 | 시간관리 표시 팝업호출 |
JSP | /WEB-INF/jsp/egovframework/com/uat/uia/EgovExpirePwd.jsp | 비밀번호 만료 안내 페이지 | 시간관리 표시 팝업 |
Query XML | resources/egovframework/mapper/com/uat/uia/EgovLoginUsr_SQL_mysql.xml | 비밀번호 만료 및 로그인을위한 MySQL용 Query XML | |
Query XML | resources/egovframework/mapper/com/uat/uia/EgovLoginUsr_SQL_oracle.xml | 비밀번호 만료 및 로그인을 위한 Oracle용 Query XML | |
Query XML | resources/egovframework/mapper/com/uat/uia/EgovLoginUsr_SQL_tibero.xml | 비밀번호 만료 및 로그인을 위한 Tibero용 Query XML | |
Query XML | resources/egovframework/mapper/com/uat/uia/EgovLoginUsr_SQL_altibase.xml | 비밀번호 만료 및 로그인을 위한 Altibase용 Query XML | |
Query XML | resources/egovframework/mapper/com/uat/uia/EgovLoginUsr_SQL_cubrid.xml | 비밀번호 만료 및 로그인을 위한 Cubrid용 Query XML | |
Query XML | resources/egovframework/mapper/com/uat/uia/EgovLoginUsr_SQL_maria.xml | 비밀번호 만료 및 로그인을 위한 Maria용 Query XML | |
Query XML | resources/egovframework/mapper/com/uat/uia/EgovLoginUsr_SQL_postgres.xml | 비밀번호 만료 및 로그인을 위한 Postgres용 Query XML | |
Query XML | resources/egovframework/mapper/com/uat/uia/EgovLoginUsr_SQL_goldilocks.xml | 비밀번호 만료 및 로그인을 위한 Goldilocks용 Query XML |
테이블명 | 테이블명(영문) | 비고 |
---|---|---|
일반회원 | COMTNGNRLMBER | 일반회원 정보를 관리한다. 주민등록번호(IHIDNUM) 컬럼이 존재하나 데이터 저장 및 조회 로직에서는 제외되어 있으므로 필요시 암호화하여 구현해야 함 CHG_PWD_LAST_PNTTM 컴럼 사용(비밀번호 최초등록 또는 수정 일시 기록) |
기업회원 | COMTNENTRPRSMBER | 기업회원 정보를 관리한다. 신청인주민등록번호(APPLCNT_IHIDNUM) 컬럼이 존재하나 데이터 저장 및 조회 로직에서는 제외되어 있으므로, 필요시 암호화하여 구현해야 함 CHG_PWD_LAST_PNTTM 컴럼 사용(비밀번호 최초등록 또는 수정 일시 기록) |
업무사용자 | COMTNEMPLYRINFO | 업무사용자 정보를 관리한다. CHG_PWD_LAST_PNTTM 컴럼 사용(비밀번호 최초등록 또는 수정 일시 기록) |
비밀번호 등록 또는 수정후 만료 기간을 설정할수 있다.
설정파일에 Globals.ExpirePwdDay를 설정한다. 일 단위로 기재한다. ex) 180 = 180일
비밀번호 등록 또는 수정일로부터 지정된 일수 까지는 유효하고 해당 기간이 지나면 안내 팝업이 출력된다.
# 비밀번호 유효기간 설정 Globals.ExpirePwdDay = 180
비밀번호 등록 또는 수정날짜에서 특정한 시일이 경과하였는지 확인한다.
@RequestMapping("/EgovContent.do") public String setContent(ModelMap model) throws Exception { // 설정된 비밀번호 유효기간을 가져온다. ex) 180이면 비밀번호 변경후 만료일이 앞으로 180일 String propertyExpirePwdDay = EgovProperties.getProperty("Globals.ExpirePwdDay"); int expirePwdDay = 0 ; try { expirePwdDay = Integer.parseInt(propertyExpirePwdDay); } catch (Exception e) { LOGGER.debug("convert expirePwdDay Err : "+e.getMessage()); } model.addAttribute("expirePwdDay", expirePwdDay); // 비밀번호 설정일로부터 몇일이 지났는지 확인한다. ex) 3이면 비빌번호 설정후 3일 경과 LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); model.addAttribute("loginVO", loginVO); int passedDayChangePWD = 0; if ( loginVO != null ) { LOGGER.debug("===>>> loginVO.getId() = "+loginVO.getId()); LOGGER.debug("===>>> loginVO.getUniqId() = "+loginVO.getUniqId()); LOGGER.debug("===>>> loginVO.getUserSe() = "+loginVO.getUserSe()); // 비밀번호 변경후 경과한 일수 passedDayChangePWD = loginService.selectPassedDayChangePWD(loginVO); LOGGER.debug("===>>> passedDayChangePWD = "+passedDayChangePWD); model.addAttribute("passedDay", passedDayChangePWD); } // 만료일자로부터 경과한 일수 => ex)1이면 만료일에서 1일 경과 model.addAttribute("elapsedTimeExpiration", passedDayChangePWD - expirePwdDay); return "egovframework/com/cmm/EgovUnitContent"; }
Action | URL | Controller method | SQL Namespace | SQL QueryID |
---|---|---|---|---|
초기 컨텐츠 화면 | /EgovContent.do | setContent | “LoginUsr” | “selectPassedDayChangePWD” |
회원가입시 또는 비밀번호 변경시 비밀번호 수정날짜가 관리된다.
비밀번호 수정날짜에서 특정한 시일이 경과하면 비밀번호 만료에 대한 안내 팝업을 출력하여 비밀번호 변경을 유도한다.
@RequestMapping(value="/uat/uia/noticeExpirePwd.do") public String noticeExpirePwd(@RequestParam Map<String, Object> commandMap, ModelMap model) throws Exception { // 설정된 비밀번호 유효기간을 가져온다. ex) 180이면 비밀번호 변경후 만료일이 앞으로 180일 String propertyExpirePwdDay = EgovProperties.getProperty("Globals.ExpirePwdDay"); int expirePwdDay = 0 ; try { expirePwdDay = Integer.parseInt(propertyExpirePwdDay); } catch (NumberFormatException e) { LOGGER.debug("convert expirePwdDay Err : "+e.getMessage()); } catch (Exception e) { LOGGER.debug("convert expirePwdDay Err : "+e.getMessage()); } model.addAttribute("expirePwdDay", expirePwdDay); // 비밀번호 설정일로부터 몇일이 지났는지 확인한다. ex) 3이면 비빌번호 설정후 3일 경과 LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); model.addAttribute("loginVO", loginVO); int passedDayChangePWD = 0; if ( loginVO != null ) { LOGGER.debug("===>>> loginVO.getId() = "+loginVO.getId()); LOGGER.debug("===>>> loginVO.getUniqId() = "+loginVO.getUniqId()); LOGGER.debug("===>>> loginVO.getUserSe() = "+loginVO.getUserSe()); // 비밀번호 변경후 경과한 일수 passedDayChangePWD = loginService.selectPassedDayChangePWD(loginVO); LOGGER.debug("===>>> passedDayChangePWD = "+passedDayChangePWD); model.addAttribute("passedDay", passedDayChangePWD); } // 만료일자로부터 경과한 일수 => ex)1이면 만료일에서 1일 경과 model.addAttribute("elapsedTimeExpiration", passedDayChangePWD - expirePwdDay); return "egovframework/com/uat/uia/EgovExpirePwd";
Action | URL | Controller method | SQL Namespace | SQL QueryID |
---|---|---|---|---|
비밀번호 만료 팝업 | /uat/uia/noticeExpirePwd.do | noticeExpirePwd | “LoginUsr” | “selectPassedDayChangePWD” |