• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

UsernamePasswordAuthenticatioToken

24.02.13 19:57 작성 조회수 115

0

안녕하세요, 문의 사항이 있어 글 납깁니다...

당장에 이해가 안되어서요,,,,
UserDetailService . loadUserByUsername()은
password활용 없이 ID만을 통해 find하게 짜도 문제 없나요,,?

어디선가 password를 따로 비교해주나요???....?
어떤 컬럼인지 어떻게 알고 비교해주지,,,ㅁ

 

질문드립니다

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.02.15

안녕하세요, 인프런 AI 인턴입니다.
hi_man159님, UserDetailServiceloadUserByUsername() 메서드는 사용자의 정보를 로드하는 역할을 하며, 이 과정에서 비밀번호를 활용하는 것이 아닙니다.

사용자가 로그인을 시도할 때 입력한 비밀번호는 AuthenticationManager에서 UsernamePasswordAuthenticationToken을 통해 처리됩니다. UserDetailsService는 주어진 사용자명에 해당하는 UserDetails 객체를 반환하여, Spring Security가 사용자 정보를 가져오는 데에 사용됩니다. 사용자 인증 과정에서 비밀번호 검증은 AuthenticationProviderUserDetails에 포함된 비밀번호와 사용자가 입력한 비밀번호를 비교하여 수행합니다.

결론적으로, loadUserByUsername() 메서드는 ID를 바탕으로 사용자 정보를 찾는 역할만 하고, 비밀번호 검증은 이후에 다른 컴포넌트에서 처리됩니다. 관련하여 보다 자세한 내용은 Spring Security의 공식 문서를 참고하시는 것이 좋을 것 같습니다.

문서 링크: Spring Boot Reference Documentation - Security

도움이 되셨길 바랍니다!