[java] 스프링 시큐리티에서의 소셜 로그인 인증
스프링 시큐리티는 웹 애플리케이션의 보안을 관리하는 프레임워크입니다. 소셜 로그인은 사용자가 다른 웹 애플리케이션의 자격증명을 사용하여 로그인하는 방식을 말합니다. 스프링 시큐리티에서는 소셜 로그인을 구현하기 위해 다양한 인증 방식을 제공합니다.
구글 로그인 인증
구글은 많은 사람들이 사용하는 소셜 로그인 제공자 중 하나입니다. 스프링 시큐리티에서는 구글 로그인 인증을 위한 GoogleOAuth2AuthenticationFilter
를 제공합니다.
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/login/**").permitAll()
.anyRequest().authenticated()
.and()
.oauth2Login()
.loginPage("/login")
.defaultSuccessUrl("/home")
.failureUrl("/login?error=true")
.and()
.oauth2Login()
.userInfoEndpoint()
.userService(customOAuth2UserService)
.and()
.and()
.oauth2Client();
}
}
위의 코드에서 configure
메서드 내에서 http
객체를 통해 인증 및 권한 설정을 수행합니다. oauth2Login
메서드는 구글 로그인을 활성화하고, loginPage
메서드를 통해 사용자 정의 로그인 페이지를 설정합니다. defaultSuccessUrl
과 failureUrl
은 로그인 성공 및 실패 시 이동할 페이지를 설정하는 것입니다.
구글 로그인을 처리하기 위해서는 GoogleOAuth2UserService
를 구현해야 합니다. 이를 통해 사용자의 정보를 가져와서 처리할 수 있습니다.
@Service
public class CustomOAuth2UserService extends DefaultOAuth2UserService {
@Override
public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2AuthenticationException {
OAuth2User oauth2User = super.loadUser(userRequest);
// 사용자 정보 가져오기 및 처리
return oauth2User;
}
}
위의 코드는 CustomOAuth2UserService
클래스를 정의한 것입니다. loadUser
메서드를 오버라이딩하여 사용자 정보를 가져오고 처리할 수 있습니다.