본문 바로가기
카테고리 없음

[Spring] Spring Security - BCryptPasswordEncoder 회원가입/로그인

by 최호희 2024. 5. 11.

Spring Security 란?

BCryptPasswordEncoder 란? 

먼저 BcryptPasswordEncoder를 사용하기 위해서는 Spring Security를 받아야한다.

 

Build.gradle의 dependencies에 다음 코드를 추가하고 코끼리를 누른다.

implementation 'org.springframework.boot:spring-boot-starter-security'

스프링 시큐리티를 사용하게 되면 기본적으로 api를 요청할 때마다 사용자 인증을 거쳐야한다.

 

아무런 설정도 하지 않고 그냥 api를 호출하게 되면 인증되지 않았기 때문에 오류가 발생한다.

 

그래서 다음과 같이 configuration 패키지 안에 SecurityConfig 클래스를 만들어 기본 설정을 하고 빈으로 등록한다.

 

@Configuration 이란?

Spring에서 Bean을 수동으로 등록하기 위해서는, 설정 class위에 @Configuration을 추가하고, @Bean을 사용해 수동으로 빈을 등록할 수 있다.

의존성 주입을 위해서 @Configuration을 사용하게 된다.

 

@Configuration 안에서 @Bean이 빈으로 등록되는 과정은 간단하다. 

스프링 컨테이너는 @Configuration이 붙어있는 클래스를 자동으로 빈으로 등록하게 된다.

@Configuration의 역할

- Bean을 등록할 때 싱글톤(singleton)이 되도록 보장해준다.

- 스프링 컨테이너에서 Bean을 관리할 수 있게 됨.

 

BCryptPasswordEncoder 의 encode 메소드

인자로 비밀번호 평문을 받으면 암호화한 String 값을 반환한다.

 

 

BCryptPasswordEncoder  matches 메소드

첫 번째 인자로 입력받은 비밀번호 평문을 넣어주고 두 번째 인자로 서버에 저장되어있는 암호화된 비밀번호를 넣어주면 Boolean 값을 반환한다.

dlwp UserService에서 회원가입할 때는 비밀번호를 암호화해서 저장하고 로그인할 때는 비밀번호가 맞는지 확인하는 코드를 만들어보려한다.