[Spring Security] postman에서 csrf token 이용하기

2020. 3. 23. 11:58Spring/Basic

반응형

Spring Security 설정에서 csrf설정을 활성화 한후, 기존에 잘 작동하던 api post, patch, delete 메서드가 403 Forbidden 에러를 띄우며 작동하지 않게되었습니다.

02

csrf token은 의도하지 않은 request(Create/Update/Delete) 전송으로 인한 데이터의 변경을 방지하기 위해 이용하는 토큰입니다.

csrf token을 활성화 했을 경우, 매 request마다 서버로 csrf token을 이용한 인증을 해야 합니다.
만일 csrf 토큰이 일치할 경우에는 정상적으로 api가 작동되며, 토큰이 없거나 일치하지 않을 경우 405에러를 발생시킵니다.

postman에 csrf token 헤더를 설정하는 방법을 알아보도록 하겠습니다.

  1. Environment 생성 및 선택
  2. Tests javascript 작성하기
  3. header에 X-XSRF-TOKEN 추가
  4. 실행

1. Environment 생성 및 선택

06

04

postman의 오른쪽 위에 있는 환경 설정 버튼을 눌러 Environment를 생성한 후 생성한 Environment를 선택합니다.

2. Tests javascript 작성하기

csrf token값을 읽어들여 쿠키에 설정하기 위해 Tests에 코드를 작성합니다.

08

Tests 스크립트는 javascript로 작성하며, response를 받은 후 실행됩니다.

response를 받은 후 실행되는 코드이기 때문에 최초 request 실행시에는 환경변수에 xsrf-token이 설정되어있지않아 405에러가 출력됩니다.
최초 실행시에는 2번 request를 실행하면 됩니다.

postman의 환경설정(pm.environment)에 xsrf-token을 설정합니다.

3. header에 X-XSRF-TOKEN 추가

Tests 스크립트에서 설정한 xsrf-token을 헤더에 추가합니다.

07

환경변수에 설정된 변수는 {{}}로 읽어들일 수 있습니다.

4. 실행

09

csrf token을 이용하여 postman 실행이 정상적으로 작동되는 것을 확인할 수 있습니다.

이 밖에, post, delete 메서드에도 Tests 스크립트와, X-XSRF-TOKEN 헤더를 추가해주면 request가 정상적으로 동작됩니다.


+++

  • how to set csrf token in postman
  • how to set X-XSRF-TOKEN header in postman
  • postman 403 Error
728x90
반응형