spring - 如何使用 Spring RESTful Web 服务处理 CSRF 保护?

标签 spring rest spring-mvc spring-security csrf

我有一个启用了 CSRF 保护的 Spring Web 应用程序。我能够通过 AJAX 调用访问 RESTful 服务,但是当我使用其他应用程序(如 httpurlconnection)访问该服务时,出现 401 错误(CSRF token 为空)。

我知道要访问 RESTful 服务,我需要在请求 header 中传递一个 token ,但是如何获取 CSRF token ?

最佳答案

您可以在 Spring MVC 中创建一个获取 CSRF token 的映射:

@RequestMapping(value="/csrf-token", method=RequestMethod.GET)
public @ResponseBody String getCsrfToken(HttpServletRequest request) {
    CsrfToken token = (CsrfToken)request.getAttribute(CsrfToken.class.getName());
    return token.getToken();
}

关于spring - 如何使用 Spring RESTful Web 服务处理 CSRF 保护?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33125598/

相关文章:

spring - 限制批处理作业的生命周期

javascript - xPages - 通过从 URL 读取 JSON 来设置 javascript 变量

rest - 设计问题 : how to create a restful interface made out of multiple domain objects?

java - Maven:缺少 Artifact org.springframework:spring:jar:4.2.6

java - Spring boot 测试 - 使用 2 个数据库时 EntityManager 不持久

java - Thymeleaf 下拉菜单问题

java - JPA查询返回实体列表

django - 如何将Haystack与Django Rest Framework集成以制作GET REST API进行搜索?

jquery - 使用 Spring MVC/Forms 的自定义样式下拉列表

java - 滚动日历未按预期持续