반응형

JWT 2

[Spring Security] MockMvc에서 csrfToken을 이용해 403 Forbidden을 해결해보자

스프링 시큐리티를 이용하면 기본적으로 csrf() 옵션이 설정된다. 그렇기 때문에 GET Method를 제외한 POST, DELETE 등이 제대로 실행되지 않고 403 Forbidden 에러를 내뱉을 수 있다. 위 에러는 아래 테스트코드에서 발생했다. 여기서 csrf 공격이란, 간단히 말해서 아래와 같다. 공격자가 임의로 이미지나 하이퍼링크에 자신이 만든 악성링크를 첨부하거나, 이메일로 전송한다. 사용자는 실수로 해당 링크를 클릭한다. 이 때, 사용자는 인증이 완료된 로그인된 상태여야 한다. 공격자는 사용자가 링크를 클릭함으로써 JSESSIONID 등 권한을 탈취하여 마음껏 크래킹할 수 있는 상태가 된다. 이러한 공격을 csrf 공격이라고 한다. 왜 테스트 코드에서 403 Forbidden이 뜬걸까? 먼..

[Spring] 인증 토큰을 생성하는 JwtTokenProvider를 알아보고 테스트를 작성해보자

그동안 미루고 미루어왔던 JwtTokenProvider에 대해 알아보고, 테스트 코드를 작성하는 법을 작성하려 한다. JwtTokenProvider는 로그인 인증 과정을 처리할 때 반드시 필요한 access Token을 생성해주는 역할을 한다. 이 JwtTokenProvider는 @Configuration 어노테이션으로 스프링 빈으로 관리되고 있는 ArgumentResolver이나 Interceptor에서 사용되고 있기 때문에 @Component 어노테이션으로 스프링 빈 등록을 해주어야 한다. 특히 인터셉터에서 HttpServletRequest로 토큰을 추출해주고, 아규먼트 리졸버에서 토큰값으로 payload를 가져오는 역할을 해주기 때문에 JwtTokenProvider의 역할은 매우 중요하다. JwtT..

1
반응형