• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

OAuth 2.0 Client + Resource Server + Authorization Server 연동

22.12.29 11:08 작성 조회수 525

0

18:50 분쯤에 localhost:8081 과 127.0.0.1:8081요청은 session이 다르게 형성되어서 문제가 생긴다. 말씀하셔서 코드를 보니

OAuth2LoginAuthenticationFilter#attempAuthentication 메소드에서 authorizationRequestRepository#removeAuthorizationRequest 를 호출해서 세션에 있는 OAuth2AuthorizationRequest를 꺼내고 지우던데

 

OAuth 2.0 Client() 강의에서 저장하는 이유가 state 비교 및 상태유지 라하셨는데

왜 굳이 세션에 저장된것을 지우는 과정이 필요한것인가요?

이미 해당 request(auth code를 요청하는) 에 대한 검증이 끝났기에 용량을 차지해서 지우는 것인가요...?

답변 1

답변을 작성해보세요.

1

OAuth2AuthorizationRequest 는 권한부여 요청할 때 마다 생성되는 객체입니다

그래서 1단계 임시코드를 요청할 때 OAuth2AuthorizationRequest를 사용하고 2단계 access token 을 요청한 이후에는 재사용할 만한 상황이 발생하지 않기 때문에 세션에서 지우고 있습니다

그래서 만약 토큰 만료가 되어 권한부여 요청을 다시 하는 경우 이전의 OAuth2AuthorizationRequest 가 세션에 존재한다면 해당 OAuth2AuthorizationRequest를 세션에서 가져다 사용할 수 있기 때문에 문제가 되는 것입니다

임시코드가 1회성인것처럼 OAuth2AuthorizationRequest 도 마찬가지라 보시면 됩니다