스프링 부트는 자바 기반의 웹 응용 프로그램을 쉽게 만들 수 있게 해주는 프레임워크입니다. 스프링 시큐리티는 스프링 기반의 응용 프로그램에서 보안을 쉽게 구현할 수 있도록 해주는 프레임워크입니다.
스프링 부트 프로젝트 생성
먼저, 스프링 부트 프로젝트를 생성합니다. 이를 위해서는 스프링 부트 프로젝트의 공식 웹사이트나 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
으로 설정되어 있습니다.
컨트롤러 및 뷰 작성
인증이 필요한 페이지에 접근하는 경우, 스프링 시큐리티는 사용자를 로그인 페이지로 리디렉션합니다. 따라서 로그인 페이지를 작성해야 합니다. 또한, 성공 및 실패한 인증 후에 대한 리디렉션을 처리하기 위해 컨트롤러 및 뷰를 작성해야 합니다.
테스트
모든 설정이 완료되면 애플리케이션을 실행하고 테스트해야 합니다. 인증이 필요한 리소스에 접근할 때 로그인 페이지로 리디렉션이 되는지, 로그인이 정상적으로 작동하는지 등을 테스트해야 합니다.
이제 자바 스프링 부트와 스프링 시큐리티를 성공적으로 사용할 수 있을 것입니다.