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

认证高级PHP讲师

membalas semua(1)
大家讲道理

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}"/>&lt ;!-- 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/

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan