스프링 시큐리티를 디테일하게 공부하진 못했지만 미니프로젝트를 하면서 겉핡기식 공부중에 비밀번호를 암호화 하는 방법을 알아냈다.
@Configuration
public class SecurityConfig {
@Bean
BCryptPasswordEncoder encode(){
return new BCryptPasswordEncoder();
}
}
User 가 회원가입 하는 로직에서 사용한다.
암호화를 하는 encode() 함수에는 사용자가 가입할 때 적은 비밀번호를 가져와서 암호화 비밀번호로 감싸준다.
암호화된 비밀번호를 set 한 엔티티를 persist() 해주면 끝이다 !!
@RequiredArgsConstructor
@Service // 1. IoC 등록 2. Transaction 관리
public class AuthService {
private final UserRepository userRepository;
private final BCryptPasswordEncoder bCryptPasswordEncoder; //비밀번호 암호화
@Transactional
public User 회원가입(User user){
// 회원가입 진행(Repository 필요)
String encPassword = bCryptPasswordEncoder.encode(user.getPassword()); // 암호화된 패스워드가 됐다.
user.setPassword(encPassword);
user.setRole("ROLE_USER");
User userEntity = userRepository.save(user);
return userEntity;
}
}
이렇게 암호화된 상태로 DB 에 들어간다 !!