Запрос OPTIONS запрашивает заголовок авторизации - PullRequest
0 голосов
/ 04 сентября 2018

Вот мой файл 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”:""}]

Если я добавлю заголовок авторизации в Postman к тем, что у меня есть выше, я могу отправить запрос. В противном случае я получаю код ошибки 401 (Несанкционированный). Но ВАРИАНТЫ не должны запрашивать разрешение.

Вот код для фильтра: https://github.com/quickhack/tomcat/blob/master/src/main/java/org/apache/catalina/filters/CorsFilter.java

CorsFilter - это первый фильтр в моем файле web.xml, а в CorsFilter.java, если запрос определен как Preflight , он не будет переходить к следующему фильтру (см. Метод handlePreflightCORS). Поэтому обычно, когда у меня есть запрос Preflight, он не должен проверять авторизацию. Так почему я получаю ошибку 401?

...