해당 프로젝트 기반 실제 코드로 설명
https://github.com/Aguantar/lgtest
/register
) 페이지 진입 시/register
**로 이동하면…Spring Security는 GET 방식에는 CSRF 검사를 하지 않지만,
이후 회원가입 폼 전송 시(POST)에 대비해
서버가 자동으로 세션(session) 과 CSRF 토큰을 발급해둡니다.
java*// AuthController.java* @GetMapping("/register") public String registerForm(Model model) { model.addAttribute("user", new User()); return "register"; *// WEB-INF/views/register.jsp* }
Spring Security의 필터가 세션에서 CSRF 토큰을 발급/보관하고,
JSP에서 아래와 같이 꺼내 쓸 수 있습니다.
text<form action="<c:url value='/register' />" method="post"> <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/> <!-- 나머지 회원 입력 폼 --> </form>
1234abcd...
)을 담아둡니다./register
) 전송 시사용자가 폼을 제출하면,
숨겨진 input 필드에 실린 CSRF 토큰 값이 같이 서버로 전송됩니다.
textPOST /register HTTP/1.1 ... _csrf=1234abcd... username=hong&password=pw1234&role=ROLE_USER