사용자가 로그인 후 자신의 정보를 보거나 수정할때 한번 더 비밀번호를 확인 할 수 있게 구현했다.
처음에는 시큐리티 암호화로 인해서 오류가 발생했는데 Authentication 객체를 이용해
비밀번호를 비교하고 컨트롤러에서 처리하여 화면을 구성 할 수 있었다.
@GetMapping("/userinfo")
public String postPrevModify(Authentication auth,@RequestParam("ui_pwd")String pw,RedirectAttributes rttr,String ui_id,Model model) {
String userpwd=service.test(ui_id).getUi_pwd();
UserVo vo1=service.selectUser(ui_id);
if(passwordEncoder.matches(pw, userpwd)) {
model.addAttribute("vo",vo1);
model.addAttribute("mypagemain","/WEB-INF/views/user/UserInfo.jsp");
model.addAttribute("main","/WEB-INF/views/user/MyPage.jsp");
}else {
model.addAttribute("vo","비밀번호가 일치하지 않습니다.");
model.addAttribute("mypagemain","/WEB-INF/views/user/UserInfoCheckFalse.jsp");
model.addAttribute("main","/WEB-INF/views/user/MyPage.jsp");
}
return "layout";
}
<div>
회원 비밀번호를 한번 더 입력 해 주세요.
<input type="hidden" name="ui_id" value="${sessionScope.SPRING_SECURITY_CONTEXT.authentication.principal.username}">
<input type="password" name="ui_pwd"><br>
<input type="button" value="확인" id="btn">
</div>
비밀번호가 불일치할 시에 alert로 화면에 띄울까 했는데 우선은 불일치 jsp를 띄우는 방향으로 설정해 보았다, 회원 탈퇴기능까지 다 구현하고 화면단 구성을 수정해야 할 것 같다
아래 블로그 내용을 참고하여 구현 및 작성하였습니다.
https://201230.tistory.com/99