[스프링] 스프링 클라우드 시큐리티 설정 방법

스프링 클라우드 시큐리티는 스프링 부트 애플리케이션에 보안 기능을 쉽게 적용할 수 있도록 해줍니다. 이를 통해 사용자의 인증인가를 관리하고, API 엔드포인트의 보안을 강화할 수 있습니다.

의존성 추가

먼저 pom.xml 파일에 다음과 같이 의존성을 추가합니다.

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-security</artifactId>
</dependency>

보안 설정

스프링 시큐리티를 구성하기 위해 보안 관련 구성 클래스를 만들어야 합니다. 아래는 간단한 예시입니다.

import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.context.annotation.Configuration;

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .antMatchers("/public/**").permitAll()
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .and()
            .httpBasic();
    }
}

위 구성 클래스에서는 /public/** 경로에 대한 접근은 인증 없이 허용하고, 그 외의 모든 요청은 인증을 필요로 합니다.

사용자 관리

스프링 클라우드 시큐리티를 통해 사용자 계정을 설정하려면 application.properties 또는 application.yml 파일을 다음과 같이 수정합니다.

spring:
  security:
    user:
      name: user
      password: password

위 예제에서는 사용자 이름이 user이고 비밀번호가 password인 계정을 추가했습니다. 그러면 애플리케이션을 실행할 때 이 계정을 사용하여 로그인할 수 있습니다.

결론

스프링 클라우드 시큐리티를 이용하면 스프링 부트 애플리케이션에 간단하게 보안 기능을 적용할 수 있습니다. 이를 통해 애플리케이션의 보안을 효과적으로 강화할 수 있으며, 사용자 관리 또한 간편하게 할 수 있습니다.

더 많은 정보를 원하신다면 공식 문서를 참고해보세요.