cari

Rumah  >  Soal Jawab  >  teks badan

java - spring security spring mvc ajax 请求 controller 被拦截

各位大神 请教个 spring security 问题  
  getAjax("../menu/loadmenu", "", function (data) {
 这样会被拦截 因为 这个地址在数据库里面没有存 
如果 在xml 里面配置了  <security:http pattern="/main/*" security="none"/>
是可以访问了 但是在controller 里面就获取不到当前登录用户的信息了
PHP中文网PHP中文网2818 hari yang lalu520

membalas semua(1)saya akan balas

  • 大家讲道理

    大家讲道理2017-04-18 09:05:49

    Adakah anda bimbang tentang cara membuat permintaan ajax dalam keselamatan musim bunga? Permintaan ajax am adalah dilarang dalam Spring Security kerana token csrf adalah batal apabila meminta. Pegawai itu menyediakan penyelesaian, rujuk dokumen rasmi http://docs.spring.io/spring-security/site/docs/3.2.0.CI-SNAPSHOT/reference/html/csrf.html

    Kaedah khusus ialah
    1. Tambahkan kod berikut dalam teg kepala halaman jsp:
    <meta name="_csrf" content="${_csrf.token}"/>< br>< ;!-- nama pengepala lalai ialah X-CSRF-TOKEN -->
    <meta name="_csrf_header" content="${_csrf.headerName}"/>

    2. Tambahkan kod berikut sebelum permintaan ajax:
    var token = $("meta[name='_csrf']").attr("content");
    var header = $(" meta [name='_csrf_header']").attr("kandungan");
    $(dokumen).ajaxSend(fungsi(e, xhr, pilihan) {
    xhr.setRequestHeader(header, token);
    });

    Dengan cara ini, permintaan ajax boleh digunakan seperti biasa.
    Sila rujuk blog saya http://jeesun.github.io/2016/03/27/Spring-Security%E5%A4%84%E7%90%86Ajax%E8%AF%B7%E6% B1% 82/

    balas
    0
  • Batalbalas