728x90

Spring 프로젝트를 개발하고 있는데,

인증 기능에 스프링 시큐리티 전체를 사용하지 않는다.

 

그래서 인증 기능을 따로 구현하게 됐는데

하지만, 비밀번호는 암호화를 해야하기 때문에

 

스프링 시큐리티에게 인증 제어를 받지 않으면서 PasswordEncoder를 사용하는 방법을 알아보자.

 

 

1. Dependency 추가


<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-crypto</artifactId>		    
</dependency>
  • Spring Security 전체를 디펜던시 추가하게 되면 인증 기능 자체를 스프링 시큐리티에게 위임하게 된다.
  • 그래서 얍삽이처럼 암호화 기능만 존재하는 spring-security-crypto 만 Dependency 추가를한다.

 

 

2. PasswordEncoder 빈 등록


@Configuration
public class SpringSecurityConfig {
	
	@Bean
	public PasswordEncoder passwordEncoder() {
		return new BCryptPasswordEncoder();
	}

}
  • PasswordEncoder를 빈으로 등록해준다.
  • 설정 클래스를 새로 만들던 기존에 있는걸 쓰던 상관없다.
  • 필자는 스프링 부트 환경이라 설정 클래스를 쓰는데 xml 설정파일로 등록해도 상관없다.

 

 

3. 자유롭게 사용


@Autowired
private final PasswordEncoder passwordEncoder;

String encodedPassword = passwordEncoder.encode(param.get("password").toString());
  • 자유롭게 쓴다.
728x90