• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

passwordEncoder 빈 생성 시 차이

22.03.18 10:09 작성 조회수 134

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
안녕하세요. 스프링 시큐리티 공부중인데
아래 두가지 passwordEncoder 빈 생성 시 차이가 무엇인지, 성능 차이 또는 동작방식 차이가 있는지 궁금합니다.
 
참고로, 아래 링크를 보고 궁금한 점이 생겼습니다.
https://github.com/f-lab-edu/daangn-market-used-trading/pull/67/commits/ed0476f1646a6b4b21e196d64b3585604be73c98
 
감사합니다.
 
@Configuration
public class SecurityConfig {

@Bean
public PasswordEncoder passwordEncoder() {
return PasswordEncoderFactories.createDelegatingPasswordEncoder();
}
}
@Configuration
public class SecurityConfig {

@Value("${security.bcrypt.strength}")
private int strength;

@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder(strength);
}
}

답변 1

답변을 작성해보세요.

0

위에 설정은 여러 패스워드 인코딩을 지원하는 패스워드 인코더를 생성하는 빈이구요. 아래에 있는 설정은 bcrypt를 지원하는 패스워드 인코더로 패스워드 인코더 강도를 외부 설정 파일에서 설정 가능하도록 만든걸로 보입니다.

다양한 인코딩 방식을 지원할거라나, 기존의 인코딩 방식을 유지하면서 새로운 인코딩 방식을 적용하고 싶다면, 즉 보다 유연한 패스워드 인코더를 쓰고 싶다면 위에 있는 설정이 적당할 것으로 보입니다. 새로 만드는 애플리케이션이고 앞으로도 bcrypt 만 쓸거라면 (그래도 괜찮습니다. 충분히 안전한 인코딩 로직이라..) 아래 설정도 유효합니다.