반응형
개발을 하면서 Postman으로 Post method를 테스트 하려고 하는 중에 있었다.
하지만 Get method는 잘 호출되는 반면, Post method의 경우 다음과 같은 에러가 발생했다.
문제가 일어난 이유는 다음과 같았다.
Spring Security는 기본적으로 CSRF 보호를 활성화합니다.
CSRF 토큰이 요청에 포함되지 않은 경우 "403 Forbidden" 오류가 발생합니다.
Postman에서 요청을 보낼 때 CSRF 토큰을 포함했는지 확인해야 합니다.
하지만 현재 프로젝트에서 CSRF 토큰을 사용하고 있지 않기 때문에, disable로 해당 문제를 해결해줬다.
변경 전
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.authorizeRequests(authorizeRequests ->
authorizeRequests
.requestMatchers("/").permitAll()
.anyRequest().authenticated()
)
.logout(logout -> logout.logoutSuccessUrl("/"))
.oauth2Login(oauth2Login -> oauth2Login
.userInfoEndpoint(userInfoEndpoint -> userInfoEndpoint
.userService(customerOAuth2MemberService)
)
);
return http.build();
}
변경 후
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.csrf(csrf -> csrf.disable())
.authorizeRequests(authorizeRequests ->
authorizeRequests
.requestMatchers("/").permitAll()
.anyRequest().authenticated()
)
.logout(logout -> logout.logoutSuccessUrl("/"))
.oauth2Login(oauth2Login -> oauth2Login
.userInfoEndpoint(userInfoEndpoint -> userInfoEndpoint
.userService(customerOAuth2MemberService)
)
);
return http.build();
}
반응형
'Java > Spring' 카테고리의 다른 글
[Spring] server.servlet.session.timeout과 spring.session.timeout의 차이 (0) | 2023.10.13 |
---|---|
[Spring] OAuth2 소셜 로그인 후 Postman에서 Session 설정하기 (0) | 2023.09.30 |
[JPA] Spring Data Jpa에서 객체 내 속성 참조하는 방법 (0) | 2023.09.24 |
[Spring Security] 소셜로그인 시 404 에러 해결 (0) | 2023.09.10 |
[Spring] h2 데이터베이스를 사용해보자! (0) | 2023.06.19 |