DefaultOAuth2AuthorizedClientManager - Resource Owner Password 권한 부여 구현하기(1)

존스노우·2023년 8월 24일
0

springSecurity

목록 보기
39/75

  • 패스워드 방식은 username/pw 필수적으로 전달해줘야됨,

  • 이 정보를 토큰요청시 전달해야되는대, OAuth2AuthorizedClientManager
    는 이 정보가지고 밑에 요청해야되는데.?

  • 그러기 위해서 펑션 인터페이스를 통해.. 전달함

  • Manager는 클라이언트 인가 받았다 는 객체를 관리

  • 리퀘스트는 인가에관한 정보를 저장하고 전달

  • OAuth2AuthorizedClinet -> 객체가 존재한다? 인가를 받은적 있다.

  • 받은적이없다? 아래쪽으로 (아래로 갈수록 아래 클래스에 위클래스를 담는느낌?)

PasswordOAuth2AuthorizedClentProvider

  • 인가받은 클라이언트에게 토큰을 받고,
  • 토큰을 통해서 userService를 통해 endPoint에서 유저정보 반환
  • 정보를 최종적으로 다담아서
  • OAuth2AuthenticationToken 에 담는다
  • 그리고 SecurityContext에 담음 (그래서 여기서불러오는구나)
  • 핸들러에서 후속 처리함. 그리고 저장소 클래스로 부터 인가받은 클라이언트를 꺼내올 수 있음.

코드

  • 주석으로 해당코드의 동작및 어떤 역할인지 명시해 다음에 보더라도 좀더 쉽게 알기 쉬워 졌다.


로그인

  • 로그인 버튼을 누르면 인증리퀘스트에 http 리퀘스트랑 리스폰스를 담아야
  • Appconfig에서 꺼내 쑬수 있다.

  • 클라이언트에게 인가를 요청

  • 인가를 받은적이 없으니 밑으로 빠져서

  • password 인증방식으로 햇다는것등 알수 있따.

  • 우리가 설정한 mapper를 apply로 실행시켜서 가져온다

  • 인가서버에 등록된 유저들 .
  • 리턴한정보를

  • 여기서 집어넣는다.

  • 권한부 요청을 함

  • 해당 권한부 요청에 따른 provider 요청에 따라 권한요청

  • 패스워드를 가져와서 검증은하는듯
  • 이미 인가받은 클라이언트가 있으면 처리가 없어서 바로 null 해버린다.

  • 클라이언트가 최종적으로 인가를 받음.
  • 클라이언트는 인가를 맞고 사용자는 이제 인증단계를 .
profile
어제의 나보다 한걸음 더

0개의 댓글