Hover
142
2019-04-16 13:32:48 작성 2019-04-16 14:39:07 수정됨
1
118

기간만료에 관해 질문드립니다!


안녕하세요 막히는 부분이 있어서 질문 하나만 드리겠습니다.

지금 3개월 후 비밀번호 강제 변경에 관한 기능을 구현중인데 쿼리나 서비스단까지는 코딩을 하였는데 핸들러단에서 조건을 어찌 걸어야 할지 몰라 여쭙니다 

우선 코드부터 보여드리겠습니다.여기가 sql코드입니다.

<select id="selectPwDate" parameterType="caseMap" resultType="caseMap">
	SELECT
		TO_CHAR(PW_LAST_DATE ,'YYYY-MM-DD') PW_LAST_DATE,
		CASE WHEN PW_LAST_DATE <![CDATA[>=]]>PW_LAST_DATE + '3 MONTHS' THEN 'Y'
		ELSE 'N'
		END AS 변경일
	FROM
		TBL_USER_ADMIN
	WHERE  
		ADMIN_IDX = #{admin_idx}::numeric
		
	</select>

 여기가 서비스단입니다.

@Override
	public Map pwLastDate(Map parameter) throws Exception {
		CaseInsensitiveMap resultMap = new CaseInsensitiveMap();
		parameter = new HashMap<>();
		parameter.put("admin_idx","1");
		parameter.put("pw_last_date", "Y");
			
		resultMap.put("pw_last_date", dbmsAdapter_backend.readOne("user.selectPwDate", parameter));
		
		return resultMap;
		
	}

그리고 핸들러단입니다.

Map pw_last_date = (Map) userService.pwLastDate(parameter);

if (auth.getAuthorities().toString().equals("[ROLE_ADMIN]")) {
	if(pw_last_date.containsKey("pw_last_date")) {
	  response.sendRedirect(request.getContextPath() + "/user/myPage");
	  request.setAttribute("pw_last_date",user.getUserInfo().get("pw_last_date"));
	  System.out.println("비밀번호 변경일이 3개월이 지났습니다.비밀번호를 변경해주세요.");
}else if(!pw_last_date.containsKey("pw_last_date")){
	  response.sendRedirect(request.getContextPath() + "/main/main");
	  userService.resetFailCount(parameter);
	}
}

핸들러단에서 조건을 어찌 걸어야 할지 도무지 감이 잡히지 않습니다...도와주십쇼...

0
0
  • 답변 1

  • 돌갤여신나나미
    665
    2019-04-16 18:00:13

    세션에 정상적인 권한이 있는지 확인하고 최근변경일+3개월 <= 현재날짜면 변경하라고 메시지 띄우면되겠죠.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.