[java] 자바 스프링 부트 스프링 시큐리티 사용 방법

스프링 부트는 자바 기반의 웹 응용 프로그램을 쉽게 만들 수 있게 해주는 프레임워크입니다. 스프링 시큐리티는 스프링 기반의 응용 프로그램에서 보안을 쉽게 구현할 수 있도록 해주는 프레임워크입니다.

스프링 부트 프로젝트 생성

먼저, 스프링 부트 프로젝트를 생성합니다. 이를 위해서는 스프링 부트 프로젝트의 공식 웹사이트나 Maven이나 Gradle을 사용하여 프로젝트를 생성할 수 있습니다.

프로젝트 생성 후, 스프링 시큐리티를 사용하려면 pom.xml (Maven)이나 build.gradle (Gradle) 파일에 스프링 시큐리티 의존성을 추가해야 합니다.

Maven:

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

Gradle:

implementation 'org.springframework.boot:spring-boot-starter-security'

의존성을 추가한 후에는 프로젝트를 다시 빌드해야 합니다.

스프링 시큐리티 설정

스프링 시큐리티를 사용하려면 SecurityConfig 클래스를 생성하여 설정을 추가해야 합니다. 이 클래스는 WebSecurityConfigurerAdapter를 확장하여 작성됩니다.

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .antMatchers("/", "/home").permitAll()
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .loginPage("/login")
                .permitAll()
                .and()
            .logout()
                .permitAll();
    }
}

위의 예제에서 //home은 권한이 필요하지 않고, 다른 모든 요청은 인증이 필요합니다. 또한, 로그인 페이지는 /login으로 설정되어 있습니다.

컨트롤러 및 뷰 작성

인증이 필요한 페이지에 접근하는 경우, 스프링 시큐리티는 사용자를 로그인 페이지로 리디렉션합니다. 따라서 로그인 페이지를 작성해야 합니다. 또한, 성공 및 실패한 인증 후에 대한 리디렉션을 처리하기 위해 컨트롤러 및 뷰를 작성해야 합니다.

테스트

모든 설정이 완료되면 애플리케이션을 실행하고 테스트해야 합니다. 인증이 필요한 리소스에 접근할 때 로그인 페이지로 리디렉션이 되는지, 로그인이 정상적으로 작동하는지 등을 테스트해야 합니다.

이제 자바 스프링 부트와 스프링 시큐리티를 성공적으로 사용할 수 있을 것입니다.