본문 바로가기
Spring

[TIL] 231124 Spring Security 로그인

by studymode 2023. 11. 24.

Spring Security 로그인

 

Spring Security 내부의 AuthenticationManagerUserDetailsService를 통해 DB와 소통

User name을 UserDetailsService로 전달 ->

DB에서 usernmae으로 회원정보 조회 ->

성공시 UserDetails(회원상세정보) 생성

Username, password일치 시 로그인 성공 -> 세션 생성

 

 

 

UserDetailsServiceImpl 

@Service
public class UserDetailsServiceImpl implements UserDetailsService {
Private final UserRepository userRepository
.
.
.
}

 

@Service 어노테이션

implements UserDetailsService 인터페이스

UserRepository 불러오기

 

 

 

UserDetailsImp

public class UserDetailsImpl implements UserDetails { 
	private final User user;

	Public UserDetailsImpl(User user){
	this.user = user;
	}
.
.
.

}

 

UserDetailsServiceImpl통해 들어온 User객체를 UserDetailsImpl에 보내줌

 

 

 

ProductController

   @GetMapping("/products")
    public String getProducts(@AuthenticationPrincipal UserDetailsImpl userDetails) {
        // Authentication 의 Principal 에 저장된 UserDetailsImpl 을 가져옵니다.
        User user =  userDetails.getUser();
        System.out.println("user.getUsername() = " + user.getUsername());

       return "redirect:/";
    }
}

 

@AuthentiationPrincipal에 저장된 User DetailsImpl 받아옴