🍃 Spring Boot
[Spring Boot] Spring Security Crypto를 이용한 비밀번호 암호화
별이⭐
2024. 6. 6. 18:33
Spring Security를 사용하지 않은 회원가입에서 비밀번호 암호화가 필요해 찾아보았다.
Spring Security Crypto
- Spring Security의 핵심 모듈로 제공되지만, Spring Security와 다른 Spring 코드에 관한 의존성이 없다.
- 즉, 의존성에 구애받지 않는 유틸리티 클래스로 활용이 가능하다.
적용 예시
implementation 'org.springframework.security:spring-security-crypto'
@Configuration
public class AuthConfig {
// 패스워드 암호화를 위해 PasswordEncoder를 빈으로 등록
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
private final PasswordEncoder passwordEncoder;
@Transactional
public Board saveBoard(Board board) {
String encodePassword = passwordEncoder.encode(board.getPassword());
board.setPassword(encodePassword);
board.setCreatedAt(LocalDateTime.now());
board.setUpdatedAt(LocalDateTime.now());
return boardRepository.save(board);
}
// 글 수정 & 삭제 시 password 확인
public boolean verifyPassword(Long id, String password) {
Board board = boardRepository.findById(id).orElse(null);
if (passwordEncoder.matches(password, board.getPassword()))
return true;
return false;
}