我的服务有来源请求。该服务期望"身份验证"标头是一个标记。
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
因此,无法获得Access-Control-Allow-Headers : Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With
作为回复。因此,以下Authorization
调用中的GET
标头将被忽略!
但是当我禁用OPTIONS
方法的身份验证时 - 我添加了antMatchers(HttpMethod.OPTIONS,"/**").permitAll()
-
Web应用程序能够按预期发送Authorization
标头。
在我的服务中对所有HTTP.OPTIONS
方法进行未经过身份验证的调用是否安全?
答案 0 :(得分:0)
OPTIONS调用是浏览器确定是否允许对API进行跨源调用的方法。浏览器不会在此次通话中发送Authorization
标题。
您只需返回一个状态代码,指示是否允许跨越原始呼叫(200 OK或403 Forbidden)。如果允许,浏览器将使用Authorization
标头发出实际请求,然后检查凭据。