选项请求要求授权标头

时间:2018-09-04 12:20:08

标签: java rest cors authorization camunda

这是我的web.xml文件:

https://pastebin.com/SSMu7qKb

然后尝试使用以下标头从我的应用程序发送GET请求

'Content-Type': 'application/json',
'Authorization': "Basic ZGVtbzpkZW1v",
'Cache-Control': "no-cache"

http://localhost:8080/engine-rest/user

我使用邮递员追踪了我的请求。这是请求中的标头:

    [{“key”:“Access-Control-Request-Method”,“value”:“GET”,“description”:""},
{“key”:“Origin”,“value”:“http://evil.com/",“description”:"”},
    {“key”:“X-DevTools-Emulate-Network-Conditions-Client
    Id”,“value”:“6B279966ED84E2BE5D06B4F083711A81”,“description”:""},
    ,{“key”:“Access-Control-Request-Headers”,“value”:“authorization,cache-control,content-type”,“description”:""},{“key”:“Accept”,“value”:"/",“description”:""},
    {“key”:“Accept-Encoding”,“value”:“gzip, deflate, br”,“description”:""}
    ,{“key”:“Accept-Language”,“value”:“en-US,en;q=0.9”,“description”:""},
    {“key”:“Authorization”,“value”:“Basic ZGVtbzpkZW1v”,“description”:""}]

如果我在邮递员的上方添加一个Authorization标头,则可以发送请求。否则,我会得到错误代码401(未经授权)。但是OPTIONS不应要求获得授权。

以下是过滤器的代码: https://github.com/quickhack/tomcat/blob/master/src/main/java/org/apache/catalina/filters/CorsFilter.java

CorsFilter是我的web.xml文件中的第一个过滤器,并且在CorsFilter.java中,如果请求被标识为 Preflight ,它将不会传递到下一个过滤器(请参阅handlePreflightCORS方法)。因此,通常当我收到预检请求时,不应检查授权。那么为什么会出现错误401?

0 个答案:

没有答案