@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/login**", "/error**").permitAll()
.antMatchers("/api/**").permitAll()
.anyRequest().authenticated()
.and()
.oauth2Login()
.userInfoEndpoint()
.userService(customOAuth2UserService);
}
@Autowired
private CustomOAuth2UserService customOAuth2UserService;
}
>>>>>>>>>>>>>>>
@Configuration
@EnableWebSecurity
public class SecurityConfig {
private final CustomOAuth2UserService customOAuth2UserService;
public SecurityConfig(CustomOAuth2UserService customOAuth2UserService) {
this.customOAuth2UserService = customOAuth2UserService;
}
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests(authorize -> authorize
.requestMatchers("/", "/login**", "/error**").permitAll()
.requestMatchers("/api/**").permitAll()
.anyRequest().authenticated()
)
.oauth2Login(oauth2 -> oauth2
.userInfoEndpoint(userInfo -> userInfo
.userService(customOAuth2UserService)
)
);
return http.build();
}
}
- WebSecurityConfigurerAdapter를 상속하는 대신 일반 클래스를 사용합니다.
- @Autowired 대신 생성자 주입을 사용합니다.
- configure 메서드 대신 SecurityFilterChain 빈을 정의합니다.
- authorizeRequests()가 authorizeHttpRequests()로 변경되었습니다.
- antMatchers()가 requestMatchers()로 변경되었습니다.
- 람다식을 사용하여 더 명확하고 읽기 쉬운 구성을 제공합니다.