Отключить аутентификацию для запросов OPTIONS в Tomcat
У меня есть API, защищенный базовой аутентификацией. Когда я хочу сделать AJAX-запросы к API, браузер отправляет запрос OPTIONS, который не содержит заголовка авторизации, поэтому он отклоняется, и, следовательно, мой вызов AJAX не разрешен браузером.
Я попытался настроить Tomcat, чтобы он не аутентифицировал запросы OPTIONS, но мне не удалось заставить его работать.
Кто-нибудь, чтобы помочь мне получить это работает?
Спасибо:)
2 ответа
Может быть, этот ответ поможет. Короче говоря, нам нужно настроить сервер Tomcat для пересылки запроса в CorsFilter, даже если он не прошел проверку подлинности, используя что-то вроде этого:
<security-constraint>
<web-resource-collection>
<url-pattern>/*</url-pattern>
<http-method>OPTIONS</http-method>
</web-resource-collection>
<!-- no auth-constraint here -->
</security-constraint>
убедитесь, что вы НЕ включаете элемент "auth-constraint". Итак, следующий пример не будет работать:
<security-constraint>
<web-resource-collection>
<url-pattern>/*</url-pattern>
<http-method>OPTIONS</http-method>
</web-resource-collection>
<auth-constraint/><!-- this will prevent OPTIONS request -->
</security-constraint>
Вы должны написать белый список для вашей свиньи
для получения дополнительной информации см.: Запрещение методов HTTP на Tomcat чувствительно к регистру?