본문 바로가기

Spring_SpringBoot/코드

[ Spring Security 6 ] - 5, AuthenticationProvider, UserDetailService, UserDetail

사용자의 아이디와 비밀번호는 AuthenticationManager가 담당한다. 그 객체로 실제로 권한이나 인증을 체크하는

객체는 AuthenticationProvider에서 Override한 Authentication 객체이다. 

 

1) AuthenticationProvider

 

 

1) UserDetails user = customUserDetailsService.loadUserByUsername(username);

usernamePasswordAuthenticationFilter를 통해서 얻어온(사용자가 입력한 이름)을 통해 DB조회한다.

 

2) 마지막에 있는 supports는 그 전에 UsernamePasswordAuthenticationFilter를 통해서 얻어온 값이 유효한

    토큰인지 확인하는 것이다.

 

2) UserDetailService

 

 

1) memberMapper를 통해서 사용자를 조회 후 UserDetail에 저장한다.

 

3) DetailUser

 

1) 사용자의 이름과 비밀번호를 저장하고 getAuthorities를 통해서 "ROLE_USER" 권한을 획득한다.

    → 필자의 경우는 하지 ROLE_ADMIN과 같은 설정은 하지 않음