시큐리티 적용 후 포스트맨 테스트
시작하기에 앞서
해당 블로그의 모든 문서는 학습한 내용을 제 방식으로 정리하여 작성하고 있습니다.
순수 창작물도 아니고, 틀린 내용이 있을 수 있으므로 참고하고 읽어주시면 감사하겠습니다.
시큐리티에 대한 아무 설정도 하지 않은 상태에 대한 사용 방법을 설명하고 있습니다.
JWT와 같은 설정 방법은 다른 글을 참고해 주세요.
GET 요청
스프링 시큐리티 적용 후 시큐리티에 대한 아무 설정도 하지 않은 상태에서 포스트맨을 이용하여 서버의 엔드 포인트에 요청하면,
401 Unauthorized HTTP Status Code가 표시됩니다.
이는 인가가 없는 사용자가 리소스를 요청했기 때문에 발생하는 현상입니다.
이럴 때 해결 방법은 간단합니다. 포스트맨의 Authorization 탭에서 Type을 Basic Auth로 설정 후 Username과 Password를 적은 다음에 서버에 요청하면 됩니다.
아무 설정도 하지 않은 상태라면 기본 Username은 user
가 되고, Password는 스프링 애플리케이션을 실행하면 콘솔에 표시되는
Using generated security password: 36b13835-4a35-42f1-be58-6e9291d10f6c
부분을 살펴보면 됩니다.
GET 이외의 요청(POST, PUT, DELETE 등)
GET은 Basic Auth만 잘 설정해 주면 별문제가 없는데, 그 이외의 method를 요청할 땐
제대로 설정해 줘도 요청에 실패합니다.
왜 그럴까 찾아보니 기본적으로 CSRF 토큰 정보를 체크하기 때문에 header로 토큰 정보를 넘겨줘야 한다고 합니다.
CSRF 토큰을 발급해 주도록 설정해도 되지만, 여기서는 csrf를 비활성화하는 방식으로만 해보겠습니다.
@EnableWebSecurity
@Configuration
public class SecurityConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
return http.csrf()
.disable()
.build();
}
}
위와 같이 설정 코드를 작성해 준 후 실행하면 GET 이외의 요청도 정상적으로 호출되는 것을 볼 수 있습니다.