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 생성된 리프레시 토큰을 쿠키에 저장부터 하면됨
'공부 > Spring' 카테고리의 다른 글
스프링 부트 3 백엔드 개발자 되기_24 (0) | 2023.09.06 |
---|---|
스프링 부트 3 백엔드 개발자 되기_23 (0) | 2023.09.05 |
스프링 부트 3 백엔드 개발자 되기_21 (0) | 2023.09.03 |
스프링 부트 3 백엔드 개발자 되기_20 (0) | 2023.09.01 |
스프링 부트 3 백엔드 개발자 되기_19 (0) | 2023.08.31 |