Spring

스프링 컨트롤러에서 _csrf 가져 오기

기록만이살길 2021. 3. 20. 09:03
반응형

스프링 컨트롤러에서 _csrf 가져 오기

1. 질문(문제점):

스프링 컨트롤러에서 _csrf 객체 (?!)를 어떻게 얻을 수 있습니까? Spring Security를 ​​구성했으며 jsp 파일에서 $ {_ csrf} 요청 속성을 얻을 수 있습니다. 난 노력 했어:

CsrfToken _csrf = (CsrfToken) session.getAttribute("CsrfToken");
CsrfToken _csrf = (CsrfToken) session.getAttribute("_csrf");

결과가 널입니다.

미리 감사드립니다!

2. 해결방안:

디버그에서 "org.springframework.security.web.csrf.HttpSessionCsrfTokenRepository.CSRF_TOKEN"키가있는 세션 속성을 보았습니다. HttpSessionCsrfTokenRepository 클래스를 보았습니다 . 들어오는 HttpServletRequest 개체에서 토큰을로드하는 메서드가 있습니다.

마침내 이것은 나를 위해 일했습니다.

CsrfToken token = new HttpSessionCsrfTokenRepository().loadToken(request);

누군가 이것이 어떻게 작동하는지 설명해 주시면 감사하겠습니다.

65677992
반응형