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 받아옴
'Spring' 카테고리의 다른 글
[TIL] 231130Spring 단위테스트 Unit Tests 반복테스트 Assertions Given-When-Then (0) | 2023.11.30 |
---|---|
[TIL] 231130Spring Timestamped @Service @Transactional (0) | 2023.11.30 |
[TIL] 231123 Spring Filter, Spring Security 프레임워크 (2) | 2023.11.23 |
[TIL] 231121 Spring 회원가입 구현 (1) | 2023.11.22 |
[TIL] 231117 Spring Data JPA, JPA Auditing, Query Method, Entity의 상태 (0) | 2023.11.17 |