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개의 댓글