Spring/공부

책[스프링부트와 AWS로 혼자 구현하는 웹 서비스] SecurityConfig 작성시 WebSecurityConfigurerAdapter 문제

synclair 2023. 7. 14. 11:31

WebSecurityConfigurerAdapter 는 지금은 deprecated가 되었기 때문에 더 이상 지원 안한다.

p.180 페이지의 시큐리티 설정 코드를 약간 변경해보았다.

package com.tony.springboot.book.config.auth; // 이건 자기 패키지 상황에 맞게 바꾸세요 

import com.tony.springboot.book.domain.user.Role;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.web.SecurityFilterChain;

@RequiredArgsConstructor
@EnableWebSecurity
public class SecurityConfig {

    private final CustomOAuth2UserService customOAuth2UserService;

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http.csrf().disable()
                .headers().frameOptions().disable()
                .and()
                .authorizeRequests()
                .antMatchers("/", "/css/**", "/images/**", "/js/**", "/h2-console/**").permitAll()
                .antMatchers("/api/v1/**").hasRole(Role.USER.name())
                .anyRequest().authenticated()
                .and()
                .logout()
                .logoutSuccessUrl("/")
                .and()
                .oauth2Login()
                .userInfoEndpoint()
                .userService(customOAuth2UserService);

        return http.build();
    }
}