• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

AuthorizationServerEndpointsConfigurer 클래스의 userDetailsService 와 authenticationManager userdetailservice의 차이점

20.02.02 00:49 작성 조회수 470

2

해당 두 클래스의 userdetailservice 의 차이점이 궁금합니다. 

각각 다른 용도인건가요? 예제 상으로는 같은 서비스를 사용해서 질문드립니다.

아그리고 인증서버 테스트 당시 그전 수업에서 APP CONFIG 파일내에서 그전 수업 테스트를 위해 등록한 applicationrunner 빈은 제거 하고 진행하는게 맞는거죠?  같은 유저정보가 두번 입력 되어서 테스트가 실패합니다.

답변 5

·

답변을 작성해보세요.

2

Wonjin Kim님의 프로필

Wonjin Kim

2020.05.25

현재 강의를 진행하다 보면 TokenStore, @EnableAuthorizationServer, AuthorizaionServerConfigureAdapter 등 deprecated 된 클래스가 많은데 추가적으로 어떤 부분이 변경이 됐는지 알 수 있을까요?

1

@Wonjin Kim, 강의를 만든 이후, 이 강좌에서 사용한 Spring Security OAuth 프로젝트가 deprecation 됐기 때문입니다. Auth Server를 따로 커뮤니티 프로젝트로 분리되었고, 그밖에 다른 기능으 스프링 시큐리티 프로젝트 5.*에 포함되었습니다. 

자세한 건 이 문서를 참고해 주세요.
https://github.com/spring-projects/spring-security/wiki/OAuth-2.0-Migration-Guide

1

제가 실수했네요. 둘 다 AuthenticationManager에 설정하는게 아니라 하나는 AuthorizationServerEndpoint에 설정하는거네요. Endpoint쪽이 사용하는 userDeatilsService가 AuthenticationManager가 사용하는 userDetailsService가 다를 수 있다고 설계한게 아닐까 싶은데요. 말씀하신대로 같은 인스턴스를 사용할꺼라서 불필요한 설정으로 보이네요. enpoint에 userDetailsService를 설정하는 코드를 삭제해도 동작할겁니다.

1

둘이 같은 서비스가 맞는데 참조하는 곳이 다를 뿐입니다. 그리고 둘 다 사실 참조하는 곳은 authentication manager에요. AuthServer 설정에서도 잘 보시면 결국엔 authentication manager에다 설정하는 겁니다.

endpoints.authenticationManager(authenticationManager)
.userDetailsService(accountService)

네 ApplicationRunner는 제거하는게 맞습니다. 말씀하신대로 유저 정보가 중복되니까요.

0

asdkfur님의 프로필

asdkfur

질문자

2020.02.02

답변 감사합니다. 그런데 혹시 만약 같은 서비스를 참조하는 거라면 authentication manager가 이미userdetailsService로 accountService를 가지고 있는데 왜 또 설정을 하는 건가요?