해당 글은 groomedu의 스프링부트 나만의 블로그 만들기 강의를 보고 개인적으로 정리한 글입니다.
시큐리티에서 해쉬 암호화된 비밀번호 값만 로그인이 되게함.
해쉬 암호화를 하면 고정길이의 16진수 값으로 변경
해쉬의 장점
- 원본값과 비교하여 위조되었는지 판별 가능
SecurityConfig
@Bean //IoC가 됌.
public BCryptPasswordEncoder encodePWD() {
return new BCryptPasswordEncoder();
}
SpringConfig에 위와 같이 선언.
BCryptPasswordEncoder는 Spring Security에서 제공하는 암호화 함수이다.
회원가입 Service
@Autowired
private BCryptPasswordEncoder encoder;
@Transactional
public int save(User user) {
try {
String rawPassword = user.getPassword();//1234 원문
String encPassword = encoder.encode(rawPassword); //해쉬
user.setPassword(encPassword);
user.setRole(RoleType.USER);
userRepository.save(user);
return 1;
} catch (Exception e) {
e.printStackTrace();
System.out.println("UserService : 회원가입() : "+e.getMessage());
}
return -1;
}
SpringConfig에서 BCryptPasswordEncoder를 Autowired해서 DI하고
user의 password 값을 encode해서 user entity에 세팅한다.
회원가입 시 비밀번호 값이 해쉬값으로 저장된 것을 확인할 수 있다.
'Spring > SpringBoot' 카테고리의 다른 글
[goormedu 강의] 스프링부트 블로그 만들기 06 - 05 스프링 시큐리티 로그인 (0) | 2024.10.05 |
---|---|
[goormedu 강의] 스프링부트 블로그 만들기 06 - 04 XSS와 CSRF (0) | 2024.10.05 |
[goormedu 강의] 스프링부트 블로그 만들기 06 - 02 스프링 시큐리티 로그인 페이지 커스터마이징 (0) | 2024.09.25 |
[goormedu 강의] 스프링부트 블로그 만들기 06 - 01 스프링 시큐리티 체험해보기 (0) | 2024.09.25 |
[goormedu 강의] 스프링부트 블로그 만들기 05 - 12 전통적인 방식의 로그인 방법 (1) | 2024.08.30 |