오늘은 스프링 시큐리티에서 CSRF에 토큰 적용 방법에 대해 알아보도록 하겠습니다.
사용방법은 간단합니다.
저 같은 경우 JAVA 설정이 아닌 XML에서 스프링 시큐리티를 설정하였습니다.
spring-context.xml
spring-context.xml 에서 http 태그 안에 다음과 같이 csrf 태그를 넣습니다.
<http use-expressions="true" >
<csrf disabled="false"/> //csrf를 사용
</http>
그리고 이제 다시 로그인을 하면 다음과 같이 403에러가 뜹니다.
자 이제 form 태그 내부에 다음과 같이 코드를 삽입합니다.
login.jsp
<form id="loginForm" name="loginForm">
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
</form>
혹시나 스프링 시큐리티 taglib를 사용하시는 분들은 input 태그 대신 다음과 같이 작성하시면 됩니다.
(두 가지 방법중 본인이 편한 방법을 선택해서 하나만 사용하시면 됩니다.)
taglib 방법
상단에 sec 태그를 추가하고 다음과 같이 작성하시면 됩니다.
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%>
<form id="loginForm" name="loginForm">
<sec:csrfInput />
</form>
자 그럼 실제로 value 값이 제대로 들어갔는지 확인합니다.
두 가지 방법 모두 value 값이 정상적으로 들어갔습니다.
이 value는 계속해서 바뀌기 때문에 참고하시기 바랍니다.
그리고 403 에러 없이 정상적으로 넘어간다면 성공입니다.
(참고로 csrf를 사용하게 되면 logout시에도 get 방식 대신 post로 해야한다니 참고 바랍니다.)
'프로그래밍 > 스프링[Spring]' 카테고리의 다른 글
Java UUID 사용하기 - 중복되지 않는 고유 키 설정 (0) | 2019.10.24 |
---|---|
스프링 시큐리티 CSRF 관련 403 Forbidden 에러 해결 (0) | 2019.10.21 |
[jquery] iCheck plugin 사용하기 (0) | 2019.10.08 |
[자바스크립트] append, prepend, after, before 설명과 사용방법 (0) | 2019.08.09 |
[jsp] function(e) 에서 e 는 무엇인가? (0) | 2019.07.31 |