Spring 강의를 듣던 도중 Spring Security라는 것을 접하게 되었다.
Spring Security는 웹 애플리케이션의 보안 관리를 위한 프레임워크이다.
강의에서는 빠르게 설명을 해주셔서 잘 이해가 되지 않았다. 그래서 구글링을 통해 강의에서 나온 코드의 의미를 파악하기로 했다.
@Configuration
@EnableWebSecurity
public class WebSecurityConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http.csrf((csrf) -> csrf.disable());
http.authorizeHttpRequests((authorizeHttpRequests) ->
authorizeHttpRequests
.requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
.anyRequest().authenticated()
);
http.formLogin(Customizer.withDefaults());
return http.build();
}
}
@Configuration
은 Java 기반의 Spring 설정 클래스를 정의한다.@EnableWebSecurity
는 Spring Security의 웹 보안 기능을 활성화한다.SecurityFilterChain
은 Spring Security에서 보안 처리를 위한 연속적인 필터들의 체인이다.http.csrf((csrf) -> csrf.disable());
는 CSRF(Cross-Site Request Forgery) 공격 방지 기능을 비활성화한다.http.authorizeHttpRequests(...)
는 HTTP 요청에 대한 보안 설정을 정의한다. 정적 리소스에 대한 요청은 모두 허용하고, 나머지 모든 요청은 인증을 필요로 한다.http.formLogin(Customizer.withDefaults())
는 폼을 이용한 로그인 방식을 활성화하며, 이 때 기본 설정을 사용한다.