src/main/resources/spring -> Spring Bean Configuration File ->
spring-security.xml -> security(check) -> finish
<!-- Bcrypt 암호화용 bean 생성 -->
<bean id="bcryptPasswordEncoder"
class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" />
Member member = new Member(); 와 비슷
<!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:spring/root-context.xml
classpath:spring/spring-security.xml
</param-value>
</context-param>
// 암호화를 위한 bcrypt 객체 의존성 주입(DI)
@Autowired
private BCryptPasswordEncoder bcrypt;
logger.debug(inputMember.getMemberPw() + " / " + bcrypt.encode(inputMember.getMemberPw()));
// loginMember == null : 일치하는 이메일 없다
if(loginMember != null) { // 일치하는 이메일을 가진 회원 정보가 있을 경우
// 입력된 비밀번호(평문), 조회된 비밀번호(암호화) 비교 -> 같으면 true
if(bcrypt.matches(inputMember.getMemberPw(), loginMember.getMemberPw())) { // 비밀번호가 일치할 경우
loginMember.setMemberPw(null); // 비교 끝났으면 비밀번호 지우기
} else { // 비밀번호가 일치하지 않을 경우
loginMember = null;
}
}
lombok라이브러리 ajax 통신시 Gson 라이브러리 적용하기
// 이메일 중복 검사
@ResponseBody // ajax 응답 시 사용!
@GetMapping("/emailDupCheck")
//public String emailDupCheck(@RequestParam("memberEmail") String memberEmail) { // 파라미터 key값과 저장하려는 변수 명이 같으면 생략가능!
public int emailDupCheck(String memberEmail) {
// 컨트롤러에서 반환되는 값은 forward 또는 redirect를 위한 경로인 경우가 일반적
// -> 반환되는 값은 경로로 인식됨
// -> 이를 해결하기위한 어노테이션 @ResponseBody 가 존재함
// @ResponseBody : 반환되는 값을 응답의 몸통(body)에 추가하여
// 이전 요청 주소로 돌아감
// -> 컨트롤러에서 반환되는 값이 경로가 아닌 "값 자체" 로 인식됨.
return service.emailDupCheck(memberEmail);
}