728x90
스프링 시큐리티를 이용해서 비밀번호 암호화를 해주었다.
BCryptPasswordEncoder는 스프링 시큐리티 프레임워크에서 제공하는 클래스 중 하나로 비밀번호를 암호화하는 데 사용할 수 있는 메서드를 가진 클래스이다.
@Configuration
public class WebSecurityConfig{
@Bean
public static BCryptPasswordEncoder getPasswordEncoder() {
return new BCryptPasswordEncoder();
}
}
public class WebSecurityConfig{
@Bean
public static BCryptPasswordEncoder getPasswordEncoder() {
return new BCryptPasswordEncoder();
}
}
회원가입 시 비밀번호를 암호화 한 후 암호화 한 비밀번호를 DB 에 넣어주었다.
String new_password = webSecurityConfig.getPasswordEncoder().encode(memberDTO.getPassword());
Member member = Member.builder()
.email(memberDTO.getEmail())
.password(new_password)
.name(memberDTO.getName())
.build();
로그인 요청이 온 경우 암호화 된 비밀번호와 matches 를 이용해서 비교해주었다.
// 암화화 된 비밀번호와 일치 여부 체크
if (bCryptPasswordEncoder.matches(loginDTO.getPassword(), member.getPassword())){
return new ResponseEntity("로그인 되었습니다.", HttpStatus.OK);
} else {
return new ResponseEntity("회원 정보가 일치하지 않습니다.", HttpStatus.BAD_REQUEST);
}
테스트도 잘 통과했다.
@SpringBootTest
@Transactional
public class pwSecurityTest {
@Autowired BCryptPasswordEncoder bCryptPasswordEncoder;
@Test
public void 암호화_매치_테스트(){
String origin_pw = "1234";
String secure_pw = bCryptPasswordEncoder.encode(origin_pw);
Assertions.assertThat(bCryptPasswordEncoder.matches(origin_pw,secure_pw)==true);
}
}
@Transactional
public class pwSecurityTest {
@Autowired BCryptPasswordEncoder bCryptPasswordEncoder;
@Test
public void 암호화_매치_테스트(){
String origin_pw = "1234";
String secure_pw = bCryptPasswordEncoder.encode(origin_pw);
Assertions.assertThat(bCryptPasswordEncoder.matches(origin_pw,secure_pw)==true);
}
}
728x90
'🟢 프로젝트 > [Spring Boot] 스터디 룸 관리 웹' 카테고리의 다른 글
| 관리자 아이디, 비밀번호 자동 생성 (0) | 2023.05.23 |
|---|---|
| 리뷰 수정 페이지 구현 및 테스트 완료 (0) | 2023.05.12 |
| 룸 삭제 기능 , 테스트 구현 (0) | 2023.05.08 |
| 관리자 페이지 view, 스터디 룸 생성 기능 구현 (1) | 2023.05.06 |
| 파트 분배 및 계획 (0) | 2023.05.02 |