[SPRING] SocialAuthenticationFilter와 ProviderSignInController를 함께 사용해야합니까?
SPRINGSocialAuthenticationFilter와 ProviderSignInController를 함께 사용해야합니까?
짧게
ProviderSigninController를 사용할 때 인증 이벤트가 시작되지 않습니다. 전체 스프링 보안 통합을 사용하려면 어떻게해야합니까?
긴 버전
필자가 가장 잘 이해할 수 있도록 다음과 같이 Spring -Social 기능을 설정했다.
ProviderSignInController는 소셜 연결을 생성하고 새 사용자가 나타나면 사용자 계정을 자동으로 제공하도록 설정됩니다. 문서화 된 예제에서 볼 수 있듯이 SignInAdapter를 사용합니다.
또한 UserDetailsService를 사용하여 정기적 인 스프링 보안 기반 인증 서비스를 제공합니다.
그러나 내가 본 한 가지 차이점은 소셜 인증 로그인이 어떤 AuthenticationEvent도 발생시키지 않는다는 것입니다. 이러한 이벤트는 일반 계정의 필터에서 발생합니다.
나는이 통합의 일부를 놓치고 있는가? SocialAuthenticationFilter를 거치지 않고 auth 컨텍스트를 수동으로 설정하는 것이 약간 위험한 것 같습니다.
인증 이벤트 로깅을위한 중심적인 장소가 필요합니다.
해결법
-
==============================
1.필자는 Spring Security와 함께 Auth와 암시 적 가입을 위해 SocialAuthenticationFilter를 사용하고자하는 비슷한 상황을 보았습니다. ProviderSignInController보다는 컨트롤러를 사용하는 것이 더 낫다고 생각합니다.
필자는 Spring Security와 함께 Auth와 암시 적 가입을 위해 SocialAuthenticationFilter를 사용하고자하는 비슷한 상황을 보았습니다. ProviderSignInController보다는 컨트롤러를 사용하는 것이 더 낫다고 생각합니다.
나는 그것을 연결했고 대부분 효과가 있었지만 정상적인 로그인이 준 onAuthenticationSuccess 이벤트를 잃어 버렸다.
마침내 필자가 필요로하는대로 필터를 작동 시키려면 ObjectPostProcessor를 추가해야합니다. 이를 통해 SpringSocialConfigurer 내에서 필터가 처리되지 않은 상태에서 초기화 된 후 수동으로 AuthenticationSuccessHandler를 설정할 수있었습니다.
여기에 스 니펫이 있습니다.
// Spring Social configurer integrates with Spring Security for us .and().apply(new SpringSocialConfigurer() .postLoginUrl("/") // other setup .addObjectPostProcessor(new ObjectPostProcessor<SocialAuthenticationFilter>() { @Override public <O extends SocialAuthenticationFilter> O postProcess(O filter) { filter.setAuthenticationSuccessHandler(loginSuccessHandler); return filter; } });
loginSuccessHandler는 .formLogin (). successHandler (loginSuccessHandler)를 통해 필자가 정상적인 필터 구성에서 설정 한 bean과 동일합니다.
여기서 장애물을 설정할 수도 있습니다 .Handler는 여기에 있습니다.
이것은 내 목적에 도움이되었다. 이제 솔루션은 내 SocialUserDetailsService를 인증 용으로 사용하고 ConnectionSignUp을 암시 적 등록 (UsersConnectionRepository에 등록) 용으로 사용합니다.
희망이 도움이됩니다.
from https://stackoverflow.com/questions/27802112/should-i-use-both-socialauthenticationfilter-and-providersignincontroller-togeth by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 저지 및 스프링 통합 - 실행시 빈 삽입이 null 임 (0) | 2019.03.31 |
---|---|
[SPRING] java.lang.ClassNotFoundException : org.springframework.web.context.request.RequestContextListener (0) | 2019.03.31 |
[SPRING] 스프링 부트 임베디드 Tomcat 성능 (0) | 2019.03.31 |
[SPRING] 정규 표현식으로 봄 URI 템플릿 패턴 (0) | 2019.03.31 |
[SPRING] Spring DispatcherServlet : HTTP 요청에 대한 매핑이 없습니다. (0) | 2019.03.30 |