728x90
문제 발생
Spring Security로 로그인 기능 구현 당시 SecurityConfig 클래스를 WebSecurityConfigurerAdapter를 통해 Override하려고 했다. 그러나... 더 이상 사용되지 않는다고 한다... 어디로 가야하죠 아저씨... Deprecated 된 클래스가 처음인가요...
해결
Deprecated.
Use a SecurityFilterChain Bean to configure HttpSecurity or a WebSecurityCustomizer Bean to configure WebSecurity
Spring은 두 가지 방법을 제안하였고 나는 SecurityFilterChain 을 Bean으로 등록하여 해결하였다.
아래는 해결한 SecurityConfig 코드이다.
@RequiredArgsConstructor
@EnableWebSecurity
@EnableMethodSecurity
@Configuration
public class SecurityConfig {
private final JwtProvider jwtProvider;
// 비밀번호 암호화
@Bean
public PasswordEncoder passwordEncoder() {
return PasswordEncoderFactories.createDelegatingPasswordEncoder();
}
// authenticationManager Bean 등록
@Bean
public AuthenticationManager authenticationManager(AuthenticationConfiguration authenticationConfiguration) throws
Exception {
return authenticationConfiguration.getAuthenticationManager();
}
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.httpBasic().disable() // rest api 만을 고려하여 기본설정 해제
.csrf().disable()
// JwtAuthenticationFilter를 UsernamePasswordAuthenticationFilter 전에 넣음
.addFilterBefore(new JwtAuthenticationFilter(jwtProvider), UsernamePasswordAuthenticationFilter.class)
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) // 토큰 기반 인증이므로 세션 사용 안함
.and()
.headers()
.frameOptions().sameOrigin();
return http.build();
}
}
728x90
'💻dev > 🔧오류와 해결' 카테고리의 다른 글
CentOS7에 Java17 수동으로 설치하기 (0) | 2024.03.25 |
---|---|
[해결] 쿠키가 브라우저에 저장 되지 않는 Chrome SameSite 이슈 (Set-Cookie 동작 안 함) (0) | 2023.08.13 |
[해결] (Spring) Ambiguous handler methods mapped for HTTP path 오류 (0) | 2023.08.02 |
[해결] AWS EC2 퍼블릭 IP 바뀜 -> 고정 IP 사용하기 (0) | 2023.07.04 |
[해결] EC2 서버가 자꾸 죽을 때.... SWAP 메모리 설정을 하자!(AWS EC2 프리티어 메모리 부족 해결방법) (0) | 2023.06.23 |