相关疑难解决方法(0)

禁用Spring Security for OPTIONS Http Method

是否可以为某种HTTP方法禁用Spring Security?

我们有一个Spring REST应用程序,其服务要求将授权令牌附加到http请求的标头中.我正在为它编写一个JS客户端,并使用JQuery发送GET/POST请求.该应用程序使用此过滤器代码启用CORS.

doFilter(....) {

  HttpServletResponse httpResp = (HttpServletResponse) response;
  httpResp.setHeader("Access-Control-Allow-Origin", "*");
  httpResp.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
  httpResp.setHeader("Access-Control-Max-Age", "3600");
  Enumeration<String> headersEnum = ((HttpServletRequest) request).getHeaders("Access-Control-Request-Headers");
  StringBuilder headers = new StringBuilder();
  String delim = "";
  while (headersEnum.hasMoreElements()) {
    headers.append(delim).append(headersEnum.nextElement());
    delim = ", ";
  }
  httpResp.setHeader("Access-Control-Allow-Headers", headers.toString());
}
Run Code Online (Sandbox Code Playgroud)

但是当JQuery发送对CORS的OPTIONS请求时,服务器会使用Authorization Failed令牌进行响应.显然OPTIONS请求缺少授权令牌.那么可以让OPTIONS从Spring安全配置中逃脱安全层吗?

java spring spring-mvc spring-security cors

66
推荐指数
4
解决办法
6万
查看次数

标签 统计

cors ×1

java ×1

spring ×1

spring-mvc ×1

spring-security ×1