Spring
[TIL] 231124 Spring Security 로그인
studymode
2023. 11. 24. 23:13
Spring Security 로그인
Spring Security 내부의 AuthenticationManager과 UserDetailsService를 통해 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 받아옴