인프런 커뮤니티 질문&답변
로그인 후 리다이렉트
작성
·
193
0

인증제공자 2에서 커스텀한 필터 적용하고 마지막으로 서버 가동후에 테스트 하는데 해당 화면이 뜹니다.
주소창에 localhost:8080 입력후 접근하면 제대로 뜨는 것을 보면 리다이렉트 문제라고 생각되는데
쿼리스트링으로 인증 후에 다시 루트로 리다이렉트를 어떻게 해야 하나요?
다 옮겨 적은 거 같은데 혹시 제가 놓친 설명이나 코드가 있다면 죄송합니다.
답변 2
0
코드를 그대로 하셨다면
/api/login 경로로 요청을 하면 쿼리 스트링에 값이 없어도
CustomAuthenticationFilter는 토큰을 받게됩니다
CustomAuthenticationProvider가 무조건 UsernamePasswordAuthethenticationToken을 반환하기 때문
->
CustomAuthenticationFilter 상위 클래스인
AbstractAuthenticationFilter에서는 CustomProvider에서 넘겨준 Authentication 객체를 받았기 때문에
successfulAuthentication메소드가 동작하고
->
SavedRequestAwareAuthenticationSuccessHandler
에서는 SavedRequest 객체가 없어서
SavedRequestAwareAuthenticationSuccessHandler
상위 클래스인 SimpleUrlAuthenticationSuccessHandler
호출
->
최종적으로
AbstractAuthenticationTargetUrlRequestHandler
에서 sendRedirect 합니다
그럼 / 경로로 정상적으로 리다이렉트 됩니다
정리하면 별도의 설정이 없으면
SavedRequestAwareAuthenticationSuccessHandler가 만들어지는데 여기서 / 경로로 리다이렉트 합니다
0
안녕하세요, 인프런 AI 인턴입니다. 고구마의고구마님.
로그인 후 인증 과정에서 발생하는 ‘Whitelabel Error Page’는 대개 리다이렉트 설정이나 인증 흐름에서 발생할 수 있습니다. 이와 관련하여 유사한 문제가 아래 링크에 잘 설명되어 있어서 도움이 될 수 있습니다.
-
- 해당 에러는 종종 Spring Security 설정 중, 인증이 되지 않은 상태에서 특정 경로로의 접근이 인가되지 않아 발생할 수 있습니다.
WebSecurityCustomizer에서/error페이지를 정적 리소스로 설정하여 시큐리티 필터를 통과하지 않도록 하는 것이 해결책의 하나로 제시되었습니다. 아래 코드도 참고해보세요:
@Bean public WebSecurityCustomizer webSecurityCustomizer() { return (web) -> web.ignoring() .requestMatchers(PathRequest.toStaticResources().atCommonLocations()) .antMatchers("/favicon.ico", "/resources/**", "/error"); }
- 해당 에러는 종종 Spring Security 설정 중, 인증이 되지 않은 상태에서 특정 경로로의 접근이 인가되지 않아 발생할 수 있습니다.
-
- 이 질문에서는
/error경로에 대해permALL설정을 추가하여 문제를 해결하였습니다. 이는 Spring Security 설정에서 필요한 경우 특정 경로를 필터링하지 않도록 하는 방법 중 하나입니다.
- 이 질문에서는
에러 페이지가 나타나는 근본적인 원인은 로그인 성공 후 리다이렉션 경로가 잘못 설정되어 발생할 수 있습니다. 예를 들어, defaultSuccessUrl 설정이 존재하지 않거나 잘못된 경우입니다. 아래와 같은 설정을 확인해보세요:
http.formLogin().defaultSuccessUrl("/yourHomePage", true);
로그인 성공 후의 기본 리다이렉션 URL을 명시적으로 설정해주시면, 인증 후 정확한 경로로 이동이 가능합니다.
이외에도 다른 경로로의 접근 역시 권한 설정을 통해 시큐리티 필터를 우회할 수 있도록 설정해주시면 좋습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





