formLogin() 과 oauth2Login() 를 같이 사용 못하나요?
989
작성한 질문수 17
로그인 페이지를, 기본 폼 로그인이 가능한 상태에서 oauth2 로그인(페이스북, 구글로그인 등)도 같이 되도록 구성하고 싶은데, configure에 formLogin() 과 oauth2Login() 을 동시에 설정을 못하네요?
질문을 이렇게 드려도 되는진 모르겠는데, 스프링 시큐리티를 이용하면서 아이디/패스워드 로그인과 소셜로그인도 가능하게 하려면 어떻게 해야 하나요?
답변 2
4
좋은 질문이지만 그 질문에 답을 하려면 강좌를 만들어서 보여드려야 하는 수준의 질문이네요. (준비중입니다.)
지금 드릴 수 있는 답변은 폼로그인과 OAuth2 로그인을 동시에 설정할 수 있습니다. 정도겠네요.
http.formLogin()
.loginPage("/login").permitAll()
.and()
.oauth2Login();
다음에 좀 더 준비해서 시큐리티 후속 강좌로 OAuth2를 다루겠습니다.
0
답변감사합니다. 후속강좌 기대하겠습니다.
추가로 질문 드립니다.
제가 oauth2로 로그인하는 부분 샘플 찾아서 적용해봤는데요. 일단 인증은 됩니다. 인증 되는 시점에 데이터베이스에서 기 등록된 이메일인지 확인하고자 아래와 같이 memberRepository 를 주입받아서 사용하려고 하는데 주입이 안됩니다.
public class CustomOAuth2UserService extends DefaultOAuth2UserService {
@Autowired
private MemberRepository memberRepository; // <-- 디버그로 실행하면 이부분이 null 로 확인이 됩니다.
....
@Override
public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2AuthenticationException {
...
Member member = memberRepository.findByEmail(email);
...
}
최초 oauth2 로그인 처리 시 기존 가입자인지 체크하기 위해서 memberRepository 사용하려고 하는데 저 객체가 null 로 되어서 NullPointException 이 발생합니다. 왜 그런걸까요?? ㅠㅠ
아래 컨피그에서 oauth2Login() 부분에서 로그인 처리를 하고 호출하는 방식입니다.
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/", "/oauth2/**", "/login/**", "/signup", "/css/**", "/images/**", "/js/**", "/console/**", "/favicon.ico/**")
.permitAll()
.anyRequest().authenticated()
.and()
.oauth2Login()
.userInfoEndpoint().userService(new CustomOAuth2UserService())
커스텀 로그인 페이지를 등록할 경우 LogoutFilter의 등록 여부 질문
0
384
1
anonymousClass를 사용하는 이유
0
387
1
ExcpetionTranslationFilter가 FilterSecurityInterceptor에서 발생하는 예외만 처리하는 이유
0
242
1
Principal 인터페이스와 User 클래스의 관계
0
756
1
passwordEncoder 질문드립니다.
0
320
1
WebSecurityConfigurerAdapter is deprecated 가 불편하신 분들을 위해
6
864
1
왜 스프링은 userid가 아니고 username을 사용했을까요?
0
1022
1
무상태성
0
347
2
로그인 후 로그인 페이지 접속
0
282
1
AuthenticationException은 어떤 경우에 발생하는지
0
557
1
AccountService에 비밀번호
1
225
1
커스텀 어노테이션 의 `커스텀 value` 설정방법에 관한 질문입니다.
0
356
1
passwordEncoder 빈 생성 시 차이
0
254
1
Bean 등록 관련 질문입니다.
0
248
1
시큐리티 전략관련
0
355
3
브라우저 기반 요청이 클라이언트의 요청을 처리 -> 의 의미?
0
228
1
AccountControllerTest 실행오류
0
1066
1
알려주신대로 설정을 해도 다시 302요청을 보냅니다....
0
342
1
voter에 대해 질문이 있습니다.
0
226
1
제가 맞게 이해한것인지 궁금합니다.
1
234
1
Spring security test 수행시 @AuthenticationPrincipal 가 null 로 세팅됨
0
550
1
Spring security Multi 인증 문의드려요
0
290
1
ProviderManager 문의
0
269
1
UserDetailsService 가 DaoAuthenticationProvider 에 어떻게 주입 되는지 알 수 있을 까요?
0
328
1





