userDetailsService의 user정보에 대한 질문입니다.
529
작성한 질문수 10
안녕하세요 호돌맨님!
먼저 좋은강의 너무너무 감사드립니다.
시큐리티 Permission Evaluator 강의에서 알려주실때 컨트롤러로 부터 넘어온 userprincipal 의 id를 이용하여 postService.wirte에서 userRepository에서 user를 조회하셨는데요
질문
리퀘스트가 들어올 때 userDetailsService에서 user를 이미 조회를 하고 해당 유저 정보를 UserPrincipal에 넘겨서 거기서 id만을 이용하여 다시 서비스단에서 user를 조회하고있는데요 userDetailsService단에서 미리 조회해둔 user정보를 userPrincipal에 넘겨서 서비스단(postService.write)에서는 user를 다시 조회하지않고 userPrincipal에서 넘어온 user정보를 사용하면 안되는건가요?
날씨가 많이 추워졌는데 감기조심하시고 남은한해도 좋은일만 가득하세요!
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
먼저 호돌맨 님의 강의에 만족하시고 궁금증을 해소하기 위해 문의해 주셔서 감사드립니다.
질문하신 부분에 대한 답변은 다음과 같습니다:
UserDetailsService에서 조회한User정보는UserDetails인터페이스를 구현하는UserPrincipal객체에 보통 담아서 Spring Security가 사용할 수 있도록 합니다.UserPrincipal에User객체 전체를 넘기거나 아이디와 같은 필요한 정보들만 넘길 수 있습니다.postService.write같은 서비스 메서드에서User를 다시 조회할 필요 없이, 이미 인증 과정에서 생성된UserPrincipal에서 추출하여 사용할 수 있어야 하는 게 일반적인 패턴입니다.스프링 시큐리티를 활용하는 경우에는 다시
User정보를 조회하지 않고,Authentication객체에 저장된Principal(이 경우UserPrincipal) 정보를 이용하여 필요한 작업을 할 수 있습니다. 이렇게Principal에 일부 혹은 모든User정보를 포함시키면 서비스 레이어에서 다시 사용자 정보를 조회하는 중복 작업을 제거할 수 있습니다.
위의 정보는 Spring Security와 관련된 일반적인 방식을 기준으로 설명드린 것이며, 자세한 구현 방법은 각각의 사이트의 자료를 참고하시기 바랍니다.
- 시큐리티 관련 설명은 Spring Security Reference Guide에서 좀 더 자세히 확인하실 수 있습니다.
- 일반적으로 사용하는 사용자 정보 조회 방법에 대해서는 Spring Boot Reference Documentation에서 참고하실 수 있습니다.
UserDetailsService구현의 예는 Spring Data JPA - Reference Documentation의AuditorAware구현 예제를 참조하시면 도움이 될 것입니다.
추운 날씨 건강에 유의하시고, 남은 한 해도 따뜻하고 즐거운 일들이 많으시길 바랍니다!
Deprecated 관련 사항들
0
100
2
깃헙 collaboator 초대 관련
0
87
1
강의 듣다가 도커 이미지 생성시 각각도 가능하나 그렇게 사용하는데가 많은지 모르겠다라는 말을 듣고 남김니다
0
157
2
logout 후에 login 페이지 이동은 어디서 시켜주는건가요?
0
229
1
다중 데이터를 삭제 할 때
0
270
2
querydsl Q class 이슈
0
414
2
Windows WSL Vue 설정
2
246
1
Dip, @transactional
0
187
1
[vite] http proxy error: /auth/login
0
1042
2
로그인 하고 나서 GET요청으로 메인페이지 요청
0
234
2
GitHub Collaborator 초대 관련
0
256
2
Window에서 Vue.js 설정
0
321
2
collaboator로 초대받을 수 있을까요??
0
283
2
SecurityMockContext 로부터 유저 정보를 가져오기
0
261
1
given 부분이 길어질 때 어떻게 처리하면 좋을까요?
0
317
1
섹션9 프론트의 코드를 보고싶습니다,,,
0
423
1
Spring Security - defaultSuccessUrl 질문
0
625
1
강의 화면이 나오지 않습니다. 음성과 자막만 나와요
0
302
1
JPAQueryFactory(em)의 객체 생성자 오류에 대해서 질문이 있습니다ㅜㅜ
0
689
2
ExceptionHandler가 AccessDeniedHandler(Http403Handler)를 먹어버리는 현상
0
1179
2
섹션10 언제 나오나요?
0
484
1
CommentService에서 Repository를 호출하지 않는데도
0
342
1
Editor....를 활용한 패턴에 질문있습니다.
0
494
1
섹션9 vue
0
452
2





