남해밤바다
429
2021-03-18 16:55:14 작성 2021-03-18 17:02:12 수정됨
1
194

[Spring Security] AuthorizationRequestRepository의 역할이 도대체 뭐죠??


스프링 시큐리티 + oauth2 + jwt 기반의 로그인 기능을 구현하기 위해 SecurityConfig 클래스에서
'oauth2Login - authorizationEndpoint'  부분에 authorizationRequestRepository를 설정을 하는 이유를 모르겠습니다.

@Override
protected void configure(HttpSecurity http) throws Exception {

      ...
  
      http.cors()
          .and()
          .sessionManagement()
          .sessionCreationPolicy(SessionCreationPolicy.STATELESS)
          .and()
          .csrf().disable()
          .formLogin().disable()
          .httpBasic().disable()
  
      http.authorizeRequests()
              .antMatchers("/", "/test").permitAll()
              .antMatchers("/**").hasAnyRole(Role.GUEST.name() ,Role.USER.name(), Role.ADMIN.name())
              .antMatchers("/auth/**", "/oauth2/**").permitAll()
              .anyRequest().authenticated()
              .and()
              .oauth2Login()
                  .authorizationEndpoint()
                      .baseUri("/oauth2/authorization")
        이부분 -->    .authorizationRequestRepository(cookieAuthorizationRequestRepository())
                      .and()
                  .userInfoEndpoint()
                      .userService(customOAuth2UserService)
                      .and()
               .successHandler(oAuth2AuthenticationSuccessHandler)
               .failureHandler(oAuth2AuthenticationFailureHandler);

      // authorizationRequestRepository 인터페이스 구현체
      @Bean
      public HttpCookieOAuth2AuthorizationRequestRepository cookieAuthorizationRequestRepository() {
          return new HttpCookieOAuth2AuthorizationRequestRepository();
      }
}

구글링을 해보니까 Authorization request와 관련된 state(상태)를 저장시킨다고 하는데 크게 와닿지가 않네요..

AuthorizationRequestRepository 인터페이스 구현체를 만들어서 쿠키에 인증 상태를 저장하고 조회하는 용도로 활용하려는거 같은데, 쿠키를 사용안할거면 꼭 설정할 필요가 없는걸까요??

0
  • 답변 1

  • 데커드
    229
    2021-08-05 23:22:57

    저도모르겠어유ㅜㅜ

    -1
  • 로그인을 하시면 답변을 등록할 수 있습니다.