(spring security) JdbcUserDetailsManager이해

jint·2024년 10월 14일

보안

목록 보기
3/15

JdbcUserDetailsManager 이전 글에서 설명한 UserDetailsManager의 구현체이다.

이전글의 InmemoryUserDetailsManager와 같이 구성클래스에서 빈으로 등록한다.

그러나 추가로 rdb와 연결하기 위해서는 DataSource가 필요하다.

@Configuration
public class ProjectConfig {
	@Bean 
	public UserDetailsService userDetailsService(DataSource dataSource) {
		return new JdbcUserDetailsManager(dataSource);
	}
	
	//password encoder 생략
}

DataSource를 통해 db를 통해 사용자정보, 암호, authority를 가져온다

UserDetailsManager의 구현체이기 떄문에 소스코드를 살펴보면

UserDetailsService의 메서드인 loadUsersByUsername이 있고

JdbcTemplate을 통해 쿼리를 발생시킨다는것을 볼 수 있다.

UserDetailsManager의 유저 CRUD메서드도 JdbcTemplate을 통해 수행한다는 것을 확인 할 수 있다.

기본 sql문이 정의되어있다

이에 대한 setter메서드가 있기 때문에 필요에 의해서 쿼리를 재정의 할 수 있다.

0개의 댓글