spring security CSRF사용시 정상적으로 토큰값이 넘어오는 지 확인 하기 위한 테스트 클래스 작업
<bean id="csrfSecurityRequestMatcher" class="xxx.xxxx.xxxx.CsrfSecurityRequestMatcher"/>
securty http설정 부분에
<csrf disabled="false" request-matcher-ref="csrfSecurityRequestMatcher"/>
소스를 아래와 같이 작성 후 정상적으로 토큰값이 넘어오는지 확인 할 수 있습니다.
public class CsrfSecurityRequestMatcher implements RequestMatcher{
private static final Logger logger = LoggerFactory.getLogger(CsrfSecurityRequestMatcher.calss);
private Pattern allowedMethods = Pattern.compile("^(GET|HEAD|TRACE|OPTIONS)&");
private RequestMatcher imgMatcher = new RegexRequestMatcher("/img/*", null, true);
private RequestMatcher orMatcher = new OrRequestMatcher(imgMatcher);
@Override
public boolean matches(HttpServletRequest request){
//전송 url의 mothod가 post 가 아닌경우 예외처리
if(allowedMethods.matcher(request.getMethod()).matches()){
return false;
}
logger.debug("=================================");
logger.debug("URL: "+reuqest.getRequestURI());
logger.debug("X-CSRF-TOKEN: "+reuqest.getHeader("X-CSRF-TOKEN"));
logger.debug("=================================");
return !orMatcher.matches(request);
}
}
반응형
'spring' 카테고리의 다른 글
maven install 시 에러 (0) | 2021.05.11 |
---|---|
spring-data-jpa 1.11.23 - querydsl 연결 관련 버전 에러 (0) | 2021.05.11 |
ajax 전송시 415에러 발생 (0) | 2021.04.30 |
spring 다중 DB접속 mapper scan (0) | 2020.09.04 |
@Valid 사용시 xml 변경 및 jar파일 (0) | 2017.02.10 |