인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

JUNI님의 프로필 이미지
JUNI

작성한 질문수

스프링 시큐리티 OAuth2

OAuth 2.0 AuthorizationServer Endpoint - 동의단계

CustomAuthenticationProvider 질문

작성

·

67

0

http://localhost:9000/oauth2/authorize?response_type=code&client_id=oauth2-client-app1&scope=openid%20read%20write&redirect_uri=http://127.0.0.1:8081
형태에 첫 로그인 요청을 했을때, 로그인 페이지로 가지 않는 현상이 있습니다.

=> 확인을 해봤을때, CustomAuthenticationProvider 에서 프로세스 진행 완료 후

principal = AnonymousAuthenticationToken [Principal=anonymousUser, Credentials=[PROTECTED], Authenticated=true, Details=null, Granted Authorities=[ROLE_ANONYMOUS]]

principal 까지 확인되었습니다.

 

그 다음 추가적인 내용을 확인해봐야될 내용이 어떤 걸 까요?

추가적으로 첫 요청에 따른 redirect 하는 클래스가 어디인지 알고 싶습니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
JUNI님, 질문 주셔서 감사합니다.

발생한 문제를 해결하기 위해서는 CustomAuthenticationProvider에서 어떤 처리가 이루어지는지 확인하는 것이 중요합니다. 다음과 같은 점을 확인해 보세요:

  1. CustomAuthenticationProvider의 return 값: Authentication 객체가 올바르게 반환되고 있는지 확인하세요. 올바른 인증 객체(Authenticated 상태)가 반환되지 않으면 익명 사용자로 처리될 수 있습니다.

  2. AuthenticationManager 설정: CustomAuthenticationProviderAuthenticationManager에 정상적으로 등록되어 있는지 확인하세요. 스프링 시큐리티 설정에 따라 인증 제공자가 올바르게 작동하는지 확인해야 합니다.

  3. SecurityFilterChain: 스프링 시큐리티의 필터 체인에서 제대로 인증 필터가 작동하는지 확인하세요. 보통 SecurityFilterChain이 요청을 처리하는 동안 필요한 URL 패턴과 매칭됩니다.

  4. Redirect HTTP 상태 코드: 초기 요청에 대해 실패가 아닌 302(리다이렉트) 상태 코드가 반환되는지 로그를 통해 확인해 보세요.

추가적으로, 첫 번째 요청에 따라 리다이렉션을 처리하는 클래스는 보통 OAuth2AuthorizationRequestRedirectFilter입니다. 이 필터는 보통 스프링 시큐리티의 OAuth2 로그인 흐름을 처리하며 인증 요청을 리다이렉션합니다.

문제를 해결하려면 이러한 부분들을 점검하시고, 필요한 경우 스프링 시큐리티 설정이나 필터 빈 설정을 수정해야 합니다. 추가적인 URL 패턴이나 리다이렉션 처리 부분을 커스터마이즈 해야 할 수도 있습니다.

필요하신 경우 더 구체적인 정보나 코드 예제를 공유 주시면 추가로 도움을 드릴 수 있습니다. 추가 정보가 필요하신 경우 스프링 시큐리티 문서 링크를 통해 확인할 수도 있습니다. Spring Security OAuth2 클라이언트 설정 문서.

도움이 되셨길 바랍니다. 감사합니다!

JUNI님의 프로필 이미지
JUNI

작성한 질문수

질문하기