상세 컨텐츠

본문 제목

Security AJAX

스프링

by e7e 2022. 5. 23. 23:15

본문

security 사용시 ajax 전송에 헤더 세팅 필요

//서버에서 발행된 헤더네임과 토큰갑사 저장
const header = '${_csrf.headerName}';
const token =  '${_csrf.token}';


//바닐라 자바스크립트 사용시 AJAX send 전에 헤더값 세팅 필요
xhr.setRequestHeader(header, token);


//jQuery Ajax 사용시 beforeSend 추가
    dataType:"json",
    beforeSend: function(xhr) {
            xhr.setRequestHeader(header, token);
    },
    success:function(data){}

 

multipart 전송에  token값이 전송 안 될 수가 있음.

web.xml에 springMultipartFilter 등록

<!-- 요걸 앞에 ...-->
<filter>
	<filter-name>springMultipartFilter</filter-name>
	<filter-class>org.springframework.web.multipart.support.MultipartFilter</filter-class>
</filter>
<filter-mapping>
	<filter-name>springMultipartFilter</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

 
<!-- 요건 기존 Security를 위한 필터 ...-->
<filter>
	<filter-name>springSecurityFilterChain</filter-name>
	<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
	<filter-name>springSecurityFilterChain</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

CKEditor 설정

 CKEDITOR.replace("nm_ta",{
 	enterMode : CKEDITOR.ENTER_BR,
 	filebrowserUploadMethod : "form",  // 빠트려면 당황스런 상황
 	filebrowserImageUploadUrl : "<%=request.getContextPath()%>/ckUpload2?${_csrf.parameterName}=${_csrf.token}"
});

 

https://www.youtube.com/watch?v=tn47dIbqLWs 

 

'스프링' 카테고리의 다른 글

rest client  (0) 2022.05.31
hidden method filter  (0) 2022.05.25
Validator  (0) 2022.05.23
이메일  (4) 2022.05.13
Transaction  (4) 2022.05.12

관련글 더보기