Skip to main content

시큐리티 적용 후 포스트맨 테스트

시작하기에 앞서

주의

해당 블로그의 모든 문서는 학습한 내용을 제 방식으로 정리하여 작성하고 있습니다.
순수 창작물도 아니고, 틀린 내용이 있을 수 있으므로 참고하고 읽어주시면 감사하겠습니다.


시큐리티에 대한 아무 설정도 하지 않은 상태에 대한 사용 방법을 설명하고 있습니다.

JWT와 같은 설정 방법은 다른 글을 참고해 주세요.

GET 요청

스프링 시큐리티 적용 후 시큐리티에 대한 아무 설정도 하지 않은 상태에서 포스트맨을 이용하여 서버의 엔드 포인트에 요청하면,

401 Unauthorized HTTP Status Code가 표시됩니다.

이는 인가가 없는 사용자가 리소스를 요청했기 때문에 발생하는 현상입니다.


Postman

이럴 때 해결 방법은 간단합니다. 포스트맨의 Authorization 탭에서 Type을 Basic Auth로 설정 후 Username과 Password를 적은 다음에 서버에 요청하면 됩니다.


ShowPassword 아무 설정도 하지 않은 상태라면 기본 Username은 user가 되고, Password는 스프링 애플리케이션을 실행하면 콘솔에 표시되는 Using generated security password: 36b13835-4a35-42f1-be58-6e9291d10f6c부분을 살펴보면 됩니다.

GET 이외의 요청(POST, PUT, DELETE 등)

GET은 Basic Auth만 잘 설정해 주면 별문제가 없는데, 그 이외의 method를 요청할 땐

제대로 설정해 줘도 요청에 실패합니다.

왜 그럴까 찾아보니 기본적으로 CSRF 토큰 정보를 체크하기 때문에 header로 토큰 정보를 넘겨줘야 한다고 합니다.

CSRF 토큰을 발급해 주도록 설정해도 되지만, 여기서는 csrf를 비활성화하는 방식으로만 해보겠습니다.

SecurityConfig.java
@EnableWebSecurity
@Configuration
public class SecurityConfig {

@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
return http.csrf()
.disable()
.build();
}
}

위와 같이 설정 코드를 작성해 준 후 실행하면 GET 이외의 요청도 정상적으로 호출되는 것을 볼 수 있습니다.


참고 문서