Spring Security 비밀번호 재확인

염지은·2022년 2월 3일
0

spring

목록 보기
2/4

사용자가 로그인 후 자신의 정보를 보거나 수정할때 한번 더 비밀번호를 확인 할 수 있게 구현했다.
처음에는 시큐리티 암호화로 인해서 오류가 발생했는데 Authentication 객체를 이용해
비밀번호를 비교하고 컨트롤러에서 처리하여 화면을 구성 할 수 있었다.

controller

@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";
	}

jsp

<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

0개의 댓글