์ง์์ค๋จ
์คํ๋ง ์ํ๋ฆฌํฐ 5.7.x ๋ถํฐ WebSecurityConfigurerAdapter ๋ Deprecated ๋์์ต๋๋ค. ์ฐพ์๋ณด๋ ์ํฉ์ ๋ฐ๋ผ SecurityFilterChain ๊ณผ WebSecurityCustomizer ๋ฅผ ๋น์ผ๋ก ๋ฑ๋กํด ์ฌ์ฉํ๋ ๋ฐฉ์์ ๊ถ์ฅํ๋ ๊ฒ ๊ฐ์ ์ ๋ ์๋ ์ฝ๋์ฒ๋ผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. https://spring.io/blog/2022/02/21/spring-security-without-the-websecurityconfigureradapter @Configuration@EnableWebSecurity@RequiredArgsConstructorpublic class SecurityConfig { private final AccountService accountService; private final DataSource dataSource; /** * Spring Security 5.7.x ๋ถํฐ WebSecurityConfigurerAdapter ๋ Deprecated. * -> SecurityFilterChain, WebSecurityCustomizer ๋ฅผ ์ํฉ์ ๋ฐ๋ผ ๋น์ผ๋ก ๋ฑ๋กํด ์ฌ์ฉํ๋ค. */ @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { return http.authorizeRequests() .mvcMatchers("/", "/login", "/sign-up", "/check-email", "/check-email-token", "/email-login", "/check-email-login", "login-link", "/profile/*").permitAll() .mvcMatchers(HttpMethod.GET, "/profile/*").permitAll() .anyRequest().authenticated() .and() .formLogin().loginPage("/login").permitAll() .and() .logout().logoutSuccessUrl("/") .and() .rememberMe().userDetailsService(accountService).tokenRepository(tokenRepository()) .and().build(); } @Bean public WebSecurityCustomizer webSecurityCustomizer() { return (web) -> web.ignoring() .mvcMatchers("/node_modules/**") .requestMatchers(PathRequest.toStaticResources().atCommonLocations()); }}