본문 바로가기

공부/Spring

스프링 부트 3 백엔드 개발자 되기_22

OAuth2와 JWT를 함께 사용하려면 기존 스프링 시큐리티를 구현하며 작성한 설정이 아니라 다른 설정을 사용해야함

config 패키지
WebOAuthSecurityConfig 클래스
1.filterChain() 메서드 : 토큰 방식으로 인증해서 기존 폼 로그인, 세션 기능을 비활성화함
2.addFilterBefore() 헤더값 확인용 커스텀 필터 추가 : 헤더 값을 확인할 커스텀 필터를 추가, 이필터는 9.2.4 '토큰 필터 구현하기'에서 구현한 TokenAuthenticationFilter클래스임
3.authorizeReauests()메서드 URL 인증 설정 : 토큰 재발급 URL은 인증 없이 접근하도록 설정하고 나머지 API들은 모두 인증을 해야 접근하도록 설정
4,5 oauth2Login()메서드 이후 체인 메서드 수정 : OAuth2에 필요한 정보를 세션이 아닌 쿠키에 저장해서 쓸 수 있도록 인증 요청과 관련된 상태를 저장할 저장소 설정
   인증 성공시 실행할 핸들러도 설정, 해당 클래스는 아직 구현하지 않아서 에러가 발생할 것임    
6.exceptionHandling()메서드 예외 처리 설정 : /api로 시작하는 url인 경우 인증 실패시 401 상태코드 즉 Unauthorized를 반환





WebOAuthSecurityConfig 작성후 OAuth2AuthorizationRequestBasedOnCookieRepository를 작성 
=>권한 인증 흐름에서 클라이언트의 요청을 유지하는 데 사용하는 AuthorizationRequestRepository 클래스를 구현해 쿠키를 사용하여 OAuth의 정보를 가져오고 저장하기 위한 로직 

 

 

 

 

 

 

 

 

 

282pg 생성된 리프레시 토큰을 쿠키에 저장부터 하면됨