[스프링] 스프링 시큐리티와 소셜 미디어 로그인
스프링 프레임워크는 많은 기능을 제공하며 스프링 시큐리티는 웹 애플리케이션의 보안을 담당합니다. 이번 포스트에서는 스프링 시큐리티와 소셜 미디어 로그인을 통합하는 방법에 대해 알아보겠습니다.
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
은 구글 로그인에 대한 설정을 나타냅니다. 이제 구성은 완료되었습니다.
위의 설정을 통해 사용자는 애플리케이션에 로그인할 때 구글 계정을 사용할 수 있습니다. 또한, 스프링 시큐리티를 사용하여 웹 애플리케이션의 보안을 설정할 수 있습니다.