• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

강사님 전체 로직 질문있습니다! 맞는지 확인해주세요ㅎㅎ

22.08.24 11:07 작성 조회수 283

1

안녕하세요 강사님! 저같은 초보자 눈높이에 맞게 잘 알려주셔서 너무 감사합니다ㅎㅎ

이제 마지막강의를 완료하였는데요..약간 헷갈리는 부분이 존재하여 이렇게 글남깁니다.

로그인을 완료하고 1차요청이 끝나면 클라이언트는 토큰을 부여받습니다.

그후 클라이언트가 토큰을 가지고 두번째 request를 시도하는경우에,

어떻게 인증 절차의 메소드들을 무시하고 바로 인가 절차로 거치는지 Security의 내부동작방식이 궁금하여

강의도 다시듣고 웹서칭도 해보았습니다.

아래는 제가 공부해보고 간략하게 정리한 내용입니다.

제가 이해한 내용이 맞나요??

1.사용자가 http request. 

2-1.로그인 요청이라면 (UsernamePasswordAuthenticationFilter를 상속한) AuthenticationFilter가 
attemptAuthentication()를 실행되고 그 후 successfulAuthentication()을 실행된다.
해당 과정에서 토큰을 만들고 해당 토큰을 response 헤더에 담아준다.
2-2.이미 토큰을 발급받아 같이 요청한 상태라면, (UsernamePasswordAuthenticationFilter를상속한) AuthenticationFilter에서 아무런 동작없이 바로 인가처리로 이어진다.
(BasicAuthenticationFilter를 상속한 AuthorizationFilter)

3.BasicAuthenticationFilter를 상속한 AuthorizationFilter에서 받은 토큰을 parse하여 해당 Id가 db에
저장되어 있는지 확인한다.그후 존재한다면,해당 유저정보와 해당 유저의 권한이 담긴 토큰을 
SecurityContextHolder를 사용하여 세션값에 저장한다.(권한 부여)
Ex) SecurityContextHolder.getContext().setAuthentication(authentication);

답변 1

답변을 작성해보세요.

1

정확 ㅎ