1. 程式人生 > >姚博文 springsecurity restful 自定義 csrf

姚博文 springsecurity restful 自定義 csrf

當專案使用中使用了springsecurity啟用了csrf而前臺使用restful訪問,post方法的時候會提示需要csrf令牌,可以自己實現一個令牌

BeaconToken為自己實現了CsrfToken的類,頁面上得到後放入一個全域性變數用以訪問,在訪問連結後加上_csrf=自己定義的token

if(session.getAttribute("org.springframework.security.web.csrf.HttpSessionCsrfTokenRepository.CSRF_TOKEN") == null){

BeaconToken token = new BeaconToken("X-CSRF-TOKEN", "_csrf", System.currentTimeMillis() + "_todd");

session.setAttribute("org.springframework.security.web.csrf.HttpSessionCsrfTokenRepository.CSRF_TOKEN", token);
json.element("token", token.getToken());
}else{
json.element("token", JSONObject.fromObject
(session.getAttribute("org.springframework.security.web.csrf.HttpSessionCsrfTokenRepository.CSRF_TOKEN")).get("token"));

}


//[{"headerName":"X-CSRF-TOKEN","parameterName":"_csrf","token":"072d23b2-3ef5-4092-a848-88396a257775"}]