Bcrypt 암호화

김덕근·2023년 4월 26일
0

Spring

목록 보기
6/19
  1. Spring Security Core
  2. Spring Security Web
  3. Spring Security Config
    5.7.1 버전

src/main/resources/spring -> Spring Bean Configuration File ->
spring-security.xml -> security(check) -> finish

spring-security.xml

<!-- Bcrypt 암호화용 bean 생성 -->
<bean id="bcryptPasswordEncoder" 
class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" />

Member member = new Member(); 와 비슷

web.xml

<!-- 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>

MemberServiceImpl.java

	// 암호화를 위한 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);
	}
	
profile
안녕하세요!

0개의 댓글