서로 무관한 애들끼리도 직렬로 이어지던 이런 메서드 체이닝을 지양하고
.csrf().disable()
.sessionManagement().sessionCreationPolicy(...)
.and()
.authorizeHttpRequests()
// ...
함수형으로 잘 수납해서 쓰면 된다.
(이전에도 지원하는 방식이었지만 사람들이 잘 안 썼음.)
.csrf(이곳에 CSRF 설정을 위한 함수)
.sessionManagement(이곳에 세션 설정을 위한 함수)
.authorizeHttpRequest(이곳에 인가 설정을 위한 함수);
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
protected SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.csrf().disable()
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeHttpRequests()
.anyRequest().permitAll();
return http.build();
}
}
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
protected SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.csrf(AbstractHttpConfigurer::disable)
.sessionManagement((sessionManagement) ->
sessionManagement.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
)
.authorizeHttpRequests((authorizeRequests) ->
authorizeRequests.anyRequest().permitAll()
);
return http.build();
}
}
이미 잘 만들어진 메서드는 Method Reference 연산자로(::
),
이제 작업할 함수는 람다식(()->{}
) 등으로 전달하는 게 일반적이다.
감사합니다