trialNerror) Error) java.lang.NoClassDefFoundError: org/springframework/core/log/LogMessage at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:126)

이지우·2022년 11월 18일
0
  • Ajax Post 방식 전송 시 아래와 같이 Ajax 전송 시 CSRF 토큰을 함께 전달하기 위한 코드를 작성한다.
var csrfHeaderName = "${_csrf.headerName}";
	var csrfTokenValue = "${_csrf.token}"
	
	/* 38.5.3 Ajax로 CSRF 토큰 전송 방식
		: ajaxSend() 이용 시 모든 Ajax 전송 시 CSRF 토큰 같이 전송하도록 되어있음 */
	$(document).ajaxSend(function(e, xhr, options){
		xhr.setRequestHeader(csrfHeaderName, csrfTokenValue);
	});
  • 그런데 똑같은 Ajax 전송 메서드를 각기 다른 JSP에서 실행했는데 한 페이지에서만 정상적으로 동작하지 않는 문제가 발생하였다. (500에러 발생. 상기 AjaxSend 코드를 타지 못함.. )
    -> 궁여지책으로 Ajax 전송 시 beforeSend 속성 작성을 통해 해당 Ajax 코드에 직접 csrf 토큰 정보를 전달하여 해결..
    => 노트북 재부팅하니까 잘 됨.. 또 이러면 프로젝트 clean, 서버 clean 필수적으로 먼저 해보자..
java.lang.NoClassDefFoundError: org/springframework/core/log/LogMessage at org.springframework.security.web.csrf.CsrfFilter.doFilterInternal(CsrfFilter.java:126) 
var like = {
					commentCd : commentCdValue,
					movieCd: movieCdValue,
					userid : userid,
					csrfHeaderName: csrfHeaderName,
					csrfTokenValue: csrfTokenValue
				}
				
				likeService.add(like, function(result){
					alert(result);
					
				});
/* 좋아요 등록 메서드 */
 	function add(like, callback){
 		console.log("like.............");
 		
 		// add 메서드 내에 ajax 이용해 post방식으로 호출하는 코드
 		$.ajax({
 			type: 'post',
 			url: '/rest/likes/new',
 			data: JSON.stringify(like),
 			contentType: "application/json; charset=utf-8",
		 	beforeSend : function(xhr){
				xhr.setRequestHeader(like.csrfHeaderName, like.csrfTokenValue);
			},
 			success: function(result, status, xhr) {
 				
 				if(callback) {
 					
 					callback(result);
 				}	
 			},
 			error : function(xhr, status, err) {
 				if(err) {
 					error(err);
 					console.log("e");
				}
 			} 		
 		})
 	} // add(reply, callback)
profile
IT개발 입문합니다.

0개의 댓글