我使用spring android將我的android應用程序連接到由Spring MVC和Spring安全性創建的Web服務。Android RestTemplate 403未找到期望的CSRF令牌
這是代碼片段連接到Web服務:
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new GsonHttpMessageConverter());
restTemplate.getMessageConverters().add(new StringHttpMessageConverter());
String token = getToken(context);
HttpHeaders httpHeader = new HttpHeaders();
httpHeader.add(RestTemplateHelper.CSRF_TOKEN_HEADER, token);
httpHeader.setContentType(MediaType.APPLICATION_JSON);
HttpEntity requestEntity = new HttpEntity(message,httpHeader);
responseEntity = rest.exchange(params[0],HttpMethod.POST, requestEntity,
GetBalanceResponse.class);
RestTemplateHelper.CSRF_TOKEN_HEADER是X-CSRF-TOKEN。此代碼段總是給我帶錯誤403消息「未找到期望的CSRF令牌,您的會話過期了嗎?」但如果我從Firefox RestClient插件嘗試使用標題X-CSRF-TOKEN,它也能正常工作。
有人說,REST客戶端可以不使用CSRF,但在我的情況下,我真的需要做這個工作。
請幫助我們,謝謝。