inflearn logo
강의

講義

知識共有

春のセキュリティ完全征服[6.xリビジョン]

認証マネージャ - AuthenticationManager - 2

로그인 후 리다이렉트

230

wltngus2002800

投稿した質問数 6

0

image.png

인증제공자 2에서 커스텀한 필터 적용하고 마지막으로 서버 가동후에 테스트 하는데 해당 화면이 뜹니다.

주소창에 localhost:8080 입력후 접근하면 제대로 뜨는 것을 보면 리다이렉트 문제라고 생각되는데

쿼리스트링으로 인증 후에 다시 루트로 리다이렉트를 어떻게 해야 하나요?

다 옮겨 적은 거 같은데 혹시 제가 놓친 설명이나 코드가 있다면 죄송합니다.

 

 

spring spring-boot spring-security security web-security login

回答 2

0

bae jewoo

코드를 그대로 하셨다면

/api/login 경로로 요청을 하면 쿼리 스트링에 값이 없어도
CustomAuthenticationFilter는 토큰을 받게됩니다
CustomAuthenticationProvider가 무조건 UsernamePasswordAuthethenticationToken을 반환하기 때문

->

CustomAuthenticationFilter 상위 클래스인
AbstractAuthenticationFilter에서는 CustomProvider에서 넘겨준 Authentication 객체를 받았기 때문에
successfulAuthentication메소드가 동작하고

->

SavedRequestAwareAuthenticationSuccessHandler
에서는 SavedRequest 객체가 없어서
SavedRequestAwareAuthenticationSuccessHandler
상위 클래스인 SimpleUrlAuthenticationSuccessHandler
호출

->

최종적으로
AbstractAuthenticationTargetUrlRequestHandler
에서 sendRedirect 합니다

그럼 / 경로로 정상적으로 리다이렉트 됩니다

정리하면 별도의 설정이 없으면
SavedRequestAwareAuthenticationSuccessHandler가 만들어지는데 여기서 / 경로로 리다이렉트 합니다



0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 고구마의고구마님.

로그인 후 인증 과정에서 발생하는 ‘Whitelabel Error Page’는 대개 리다이렉트 설정이나 인증 흐름에서 발생할 수 있습니다. 이와 관련하여 유사한 문제가 아래 링크에 잘 설명되어 있어서 도움이 될 수 있습니다.

  1. 루트에서 로그인 성공후 에러 메시지가 보입니다.:

    • 해당 에러는 종종 Spring Security 설정 중, 인증이 되지 않은 상태에서 특정 경로로의 접근이 인가되지 않아 발생할 수 있습니다. WebSecurityCustomizer에서 /error 페이지를 정적 리소스로 설정하여 시큐리티 필터를 통과하지 않도록 하는 것이 해결책의 하나로 제시되었습니다. 아래 코드도 참고해보세요:
      
      @Bean
      public WebSecurityCustomizer webSecurityCustomizer() {
       return (web) -> web.ignoring()
           .requestMatchers(PathRequest.toStaticResources().atCommonLocations())
           .antMatchers("/favicon.ico", "/resources/**", "/error");
      }
      

  2. WebIgnore설정 오류 질문:

    • 이 질문에서는 /error 경로에 대해 permALL 설정을 추가하여 문제를 해결하였습니다. 이는 Spring Security 설정에서 필요한 경우 특정 경로를 필터링하지 않도록 하는 방법 중 하나입니다.

에러 페이지가 나타나는 근본적인 원인은 로그인 성공 후 리다이렉션 경로가 잘못 설정되어 발생할 수 있습니다. 예를 들어, defaultSuccessUrl 설정이 존재하지 않거나 잘못된 경우입니다. 아래와 같은 설정을 확인해보세요:

  • http.formLogin().defaultSuccessUrl("/yourHomePage", true);

로그인 성공 후의 기본 리다이렉션 URL을 명시적으로 설정해주시면, 인증 후 정확한 경로로 이동이 가능합니다.

이외에도 다른 경로로의 접근 역시 권한 설정을 통해 시큐리티 필터를 우회할 수 있도록 설정해주시면 좋습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

로그아웃-logout()-2 강에서 겟방식 로그아웃 호출 후 화면이동 질문입니다.

0

24

2

단원별 소스코드

0

55

2

CustomAuthenticationProvider 추가 관련 문의

0

66

2

AOP 의존성 명칭 변경

0

59

1

빈 1개 등록 시 다른 해결 방법

0

61

1

@Bean으로 AuthenticationProvider를 등록 시 http.authenticationProvider 함수를 이용해서 추가해줘야되나요?

0

84

2

OIDC의 id token에 담긴 데이터에 대해

0

69

1

loginPage("/loginPage") 질문드립니다.

0

65

1

@EnableWebSecurity

0

142

1

트랜잭션과 롤백

0

96

1

68. 인증 이벤트 - AuthenticationEventPublisher 활용 강좌 음성 문제

0

84

2

AuthenticationManager 사용 방법

0

144

2

HttpSecurity.authorizeHttpRequests() - 2 강의 부분에 대한 질문

0

97

2

spring security 6.3에서는 HttpSecurity가 만들어지기 전 WebSecurity가 먼저 만들어지는게 맞나요??

0

186

1

init(B Builder), configure(B builder) 에 대하여 질문 드립니다.

0

101

2

메타 주석 질문

0

64

1

동시세션제어 기능에서 로그아웃하기

0

140

3

로그인 후, redirect 에서 error

0

136

3

Session 생성 타이밍에 대한 질문

0

78

2

강의 참고 내용을 개발 로그로 작성해도 될지 문의드립니다.

0

129

2

customAuthentication 관련

0

123

2

authenticationManagerBuilder 주입받은거 vs 만든 거

0

107

1

UserDetailsService()에서 UserDetail이 아닌 타입을 반환할 수 있나요?

0

96

1

9:28 패턴 3의 경우 마지막으로 설정한 것만 적용되는 것 같습니다.

0

155

2