【发布时间】:2015-02-09 15:40:39
【问题描述】:
我使用 spring android 将我的 android 应用程序连接到由 Spring MVC 和 Spring security 制作的 Web 服务。
这是连接到网络服务的代码 sn-p:
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。此代码 sn-p 总是给我错误 403 并显示消息“未找到预期的 CSRF 令牌。您的会话是否已过期?”但如果我从 Firefox RestClient 插件中也尝试使用标头 X-CSRF-TOKEN,它工作得很好。
有人说 REST 客户端不使用 CSRF 也可以,但就我而言,我真的需要让这个工作。
请帮帮我,谢谢。
【问题讨论】:
标签: android spring csrf http-status-code-403 resttemplate