[스프링] 스프링 시큐리티와 소셜 미디어 로그인

스프링 프레임워크는 많은 기능을 제공하며 스프링 시큐리티는 웹 애플리케이션의 보안을 담당합니다. 이번 포스트에서는 스프링 시큐리티와 소셜 미디어 로그인을 통합하는 방법에 대해 알아보겠습니다.

1. 스프링 시큐리티 구성

먼저, 스프링 시큐리티를 통해 웹 애플리케이션의 보안을 설정합니다. 이를 위해 다음과 같이 SecurityConfig 클래스를 생성하고 @EnableWebSecurity 어노테이션을 추가합니다.

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

  @Override
  protected void configure(HttpSecurity http) throws Exception {
    http
      .authorizeRequests()
        .antMatchers("/login", "/login-error").permitAll()
        .anyRequest().authenticated()
      .and()
      .formLogin()
        .loginPage("/login")
        .failureUrl("/login-error");
  }
}

위의 예제는 /login, /login-error에 대한 접근을 허용하고 나머지 요청은 인증을 요구합니다. 또한, 로그인 폼 URL을 설정했습니다.

2. 소셜 미디어 로그인

이어서 스프링 소셜을 사용하여 소셜 미디어 로그인을 구성합니다. 우선 스프링 부트를 사용하는 경우 다음 의존성을 추가합니다.

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>

그 후 소셜 미디어의 애플리케이션 ID 및 시크릿 키application.properties에 설정합니다.

spring.security.oauth2.client.registration.google.client-id=your-client-id
spring.security.oauth2.client.registration.google.client-secret=your-client-secret
spring.security.oauth2.client.registration.google.scope=profile,email

여기서 google은 구글 로그인에 대한 설정을 나타냅니다. 이제 구성은 완료되었습니다.

위의 설정을 통해 사용자는 애플리케이션에 로그인할 때 구글 계정을 사용할 수 있습니다. 또한, 스프링 시큐리티를 사용하여 웹 애플리케이션의 보안을 설정할 수 있습니다.

참고 자료