2016-02-26 47 views
1

我对我的服务有一个交叉来源请求。该服务期望“身份验证”标题是一个令牌。忽略所有HTTP.OPTIONS调用的身份验证安全吗?

Web客户机使用angularjs拦截通过授权令牌,但得到

OPTIONS http://<domain>:<port>/xxxx 401 (Unauthorized)
XMLHttpRequest cannot load http://<domain>:<port>/xxxx. Response for preflight has invalid HTTP status code 401

,因此,不能得到作为响应。所以在GET调用中的Authorization头部被忽略!

但是,当我禁用了OPTIONS方法的认证 - 我增加了一个antMatchers(HttpMethod.OPTIONS,"/**").permitAll() - Web应用程序能够给我Authorization头如预期。

在我的服务中安全地使用所有HTTP.OPTIONS方法的非验证呼叫?

相关问题:Disable Spring Security for OPTIONS Http Method

回答

0

选项调用是浏览器建立跨原点调用API是否被允许或不允许的方式。浏览器将不会在此通话中发送标头Authorization

您只需返回一个状态码,指示是否允许跨源呼叫(200 OK或403 Forbidden)。如果允许,浏览器将使用Authorization标题进行实际请求,然后检查凭据。