2020년 3월 12일 목요일

[Spring Security] PasswordEncoder를 Bean에 등록하여 사용하기 -PasswordEncoderFactories로 DelegatingPasswordEncoder 생성하기


현재 진행 중인 프로젝트에서 비밀번호 관리를 위해 Password Encoder를 사용하고 있습니다.
Password Encoder 구현체를 Bean에 등록하여 사용하기 위해 직접 DelegatingPasswordEncoder를 생성하여 Bean에 등록하였는데
Speing Security 5.0 이후부터는 DelegatingPasswordEncoder를 생성해주는 Factory 클래스가 추가되어 직접 생성할 필요가 없어졌기 때문에 해당 문서를 작성하였습니다.




Spring Security가 프로젝트에 적용되어있다면 다음과 같이 @Bean을 작성하기만 하면 됩니다.




@Configuration
public class SecurityConfiguration {

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




사용할 때는 다음과 같이 사용할 수 있습니다.




class PasswordTests extends ApplicationTests {

 @Autowired
 PasswordService passwordTest;
 
 @Test
 void test() {
  String rawPassword = "비밀번호 입니다.";
  String encrypted = passwordTest.encrypt(rawPassword);

  assertThat(encrypted).contains("bcrypt");
  assertThat(passwordTest.match(rawPassword, encrypted)).isTrue();
 }

}

댓글 없음:

댓글 쓰기