본문 바로가기
카테고리 없음

Ajax 스프링 시큐리티 토큰 문제 외

by 데이터박물관 2021. 2. 27.

※개인적인 정리용도로 문제해결에 도움이 되지 않을 수 있습니다.

 

 

#오늘의 개고생리스트1 (Mybatis 오류)

오라클에서 COMMIT이랑 ROLLBACK을 항상 습관화할 것 (특히 COMMIT을 해놓지 않으면 마이바티스가 제대로 작동하지 않을 가능성이 있다)

 

 

#오늘의 개고생리스트2 (ajax와 시큐리티)

 

스프링으로 폴더, 그리고 url마다 시큐리티를 적용해놓았는데,

Ajax를 통해 컨트롤러로 넘긴 url이 시큐리티 보안에 걸려 denied 에러를 계속 맞닥뜨렸다.

원인은 url 넘길 때 csrf 토큰을 같이 넘겨주지 않았기 때문이고 해결책은 역시 csrf 토큰을 url 넘길 때 같이 넘겨주면 된다. (밑에 코드 빨간글씨 참고)

 

#제이쿼리 클래스변경 (밑에 녹색 글씨 참고) --> $('#id').attr('class', 'class_name'); // class_name이 변경하고자 하는 클래스 이름

 

 

$(function() {

$('#userinfo-tab').click(function() {

// var info = $('#user_or_point').val();

 

    var header = '${_csrf.headerName}';

    var token = '${_csrf.token}';

    

    $('#userinfo-tab').attr('class', 'nav-link active');

    $('#pointinfo-tab').attr('class', 'nav-link');

    

    if(token && header) {

        $(document).ajaxSend(function(event, xhr, options) {

            xhr.setRequestHeader(header, token);

        });

    }

 

$.ajax({

url: '${pageContext.request.contextPath}/profileViewAjax.u',

type: 'POST',

data: 'text',

success: function(result) {

$('#user_or_point').html(result);

},

error: function() {

alert('오류입니다.');

}

});

});

});

 

</script>

 

 

제이쿼리 클래스 변경방법은 해당 블로그를 참조했다

https://sharphail.tistory.com/45

 

댓글