스프링 시큐리티 OAuth2 - Spring Boot 기반으로 개발하는 Spring Security OAuth2

존스노우·2023년 9월 2일
0

springSecurity

목록 보기
42/75

  • 첫번째 super()
  • 필터가 요청에대해 동작하기 위한 url 정보를 정의한다
  • ex) 웹요청시 필터가 요청을 받아서 처리할것인지 defaultFilterProcessesUrl 정보와 Url 매칭이참이면 처리한다

  • 기존 로그인 컨트롤러에 있던 로직을 옮긴다.

  • 최종적 코드

  • 인가를 받고 성공 핸들러를 호출해주는데

  • principal 을 키로 인가 클라이언트를 저장한다.

  • 위 성공 시점에서 저장 할경우 principal은 익명사용자라서 여전히 인증되지 않는 상태로 저장 된다.

  • 하지만 우리는 인가받은 클라이언트는 널이 아니면 인증처리가된 인증클라이언트를

  • 다시 저장해야 된다. 위에 익명 사용자는 스프링시큐리티가 직접해주는거고

  • 우리는 핸들러를 한번더 호출해서 인증된 사용자를 저장해야된다 그 구문을 작성해보자

  • 최종적으로 인증처리가된 클라이언트 한해서

  • 이구문을 한번더 실행

  • OAuth2Client 설정

  • 컨텍스트안에 저장하고

  • 컨텍스트 안에 정보로 인증할지 인증받지못한건지 판단.

  • 과정이 다끝나면 스프링 mvc 가게끔 sendRedirect한다.

  • 핸들러가 작동해서 리다이렉트 로 이동하게 한다.

  • mvc 가기전에 해당경로는 필터가 먼저 가로 챈다.

  • 원래는 익명사용자를 만드는 필터는

  • username Password필터 뒤에서 동작하는데
  • 이미 그동작을 하기전에 앞서 필터를 처리하기때문에 Null이 들어가 에러를 발생한다.

  • 그래서 분기처리를 해줘서 익명사용자를 만들어 준다

  • 인증을 받음 home에서 처리를 따로 해주자

  • 인증을 받았으니 authentication 추가

  • 이런식으로 구현체를 바로줘도된다

  • 필터기반 구현!
  • 필터에서 인가 인증처리하는게 효율적이고 좋은방법이다.
profile
어제의 나보다 한걸음 더

0개의 댓글