인프런 커뮤니티 질문&답변

ak4686님의 프로필 이미지
ak4686

작성한 질문수

스프링 시큐리티 OAuth2

OAuth2AuthorizedClient 이해 및 활용

403 에러

작성

·

290

0

전에도 남겼었는데 이번에 실습을 하면서 AuthorizationCode Grant 를 누르면 인증을 받기 위한 로그인을 하고 나면 403 에러가 발생합니다.

 

그래서 Clientcontroller 에서 만든 로직에다가 breakpoint 를 찍으면서 확인해보면 결과 정보들은 강사님과 똑같이 들어있었습니다.

 

근데 return "/client" 부분만 가면 403 에러가 나와서 화면이 나오질 않는데 어느 부분을 먼저 봐야할까요..?

 

계속 수정해봐도 계속 403 에러가 발생해서 다시 질문드립니다!

답변 1

0

정수원님의 프로필 이미지
정수원
지식공유자

소스를 공유 해 주시면 제가 테스트 해 보도록 하겠습니다

ak4686님의 프로필 이미지
ak4686
질문자

혹시 소스는 어떻게 공유를 해드리면 될까요?

정수원님의 프로필 이미지
정수원
지식공유자

깃헙으로 해 주시면 됩니다

ak4686님의 프로필 이미지
ak4686
질문자

https://github.com/supportlaver/OAuth2.0-Study

해당 링크에 올려놨습니다..!! 감사합니다ㅠ

정수원님의 프로필 이미지
정수원
지식공유자

@Configuration
@EnableWebSecurity
public class OAUthClientConfig {

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http.authorizeHttpRequests(authRequest -> authRequest.requestMatchers("/home","/client","/favicon.ico", "/error").permitAll()
                .anyRequest().authenticated())
                .oauth2Client(Customizer.withDefaults())
                .logout(httpSecurityLogoutConfigurer -> httpSecurityLogoutConfigurer.logoutSuccessUrl("/home"));
            return http.build();
    }
}

위 클래스에서 "/favicon.ico", "/error" 을 permitAll 을 허용하도록 추가하시면 됩니다.

http://localhost:8081/client 로 리다이렉트 되는 과정에서 http://localhost:8081/favicon.ico

의 요청이 이전에 있었고 이 요청이 http://localhost:8081/client 보다 먼저 처리되고 있어서 그렇습니다.

http://localhost:8081/favicon.ico 요청은 인증받지 못하면 접근이 안되기 때문에 403 오류가 났습니다.

사실 이런 부분은 개발자가 의도적으로 발생시킨 오류가 아니기 때문에 찾아내기 쉽지 않을 뿐더러 주요 기능을 처리함에 있어 좀 피곤한 문제들입니다.

그러면 애초에 인증자체가 안됐으니 401 에러가 발생해야 하는거 아닌가요?

ak4686님의 프로필 이미지
ak4686

작성한 질문수

질문하기