Sekkison SpringBoot project - 08

ILCHAN AHN·2023년 3월 20일
0

Sekkison

목록 보기
7/13

Sekkison Project

BCryptPasswordEncoder

Sekkison 유저의 비밀번호를 안전하게 저장하기위해 BCryptPasswordEncoder를 사용해서 암호화를 진행하기로 하였다.

BCryptPasswordEncoder는 Spring Seurity에서 제공하는 클래스 중 하나로 비밀번호를 암호화하는 데 사용할 수 있는 메서드를 가진 클래스이다.

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-security'
}

먼저 Spring Security를 dependencies에 추가한다.

@Bean
	public BCryptPasswordEncoder bCryptPasswordEncoder() {
		return new BCryptPasswordEncoder();
	}

SecurityConfig 클래스에 BCryptPasswordEncoder을 bean으로 등록한다.

user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
        userRepository.save(user);
        Authority authmember = authorityRepository.findByAuth("MEMBER");
        UserAuthority ua = UserAuthority.builder()
                .userId(user.getId())
                .authority(authmember.getId())
                .build();
        userAuthorityRepository.save(ua);

UserService에 회원가입 로직에 추가해 넣어주면 간단하게 사용할 수 있다.

MySQL에 확인해보니 암호화된 비밀번호가 저장되는 것을 확인할 수 있었다.

처음 BCryptPasswordEncoder를 사용할떄 PasswordEncoder를 Bean을 중복으로 등록하였다. 더미데이터를 넣을떄 오류가 나는 것을 확인하였다. BCryptPasswordEncoder는 PasswordEncoder의 구현체이므로 SecurityConfig에 중복으로 등록되는 것을 조심해야겠다는 생각을 했다.

profile
백엔드 개발자를 꿈꿉니다

0개의 댓글

관련 채용 정보