0

Прямо сейчас я строй REST API работает на сервере Tomcat 8, который с помощью CorsFilter Апача, чтобы запросы Междоменных которые я установил на моем web.xml так:Digest Authentication с CORS на Tomcat

<filter> 
    <filter-name>CorsFilter</filter-name> 
    <filter-class>org.apache.catalina.filters.CorsFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>CorsFilter</filter-name> 
    <url-pattern>/webapi/*</url-pattern> 
</filter-mapping> 

До сих пор так легко теперь я хотел добавить аутентификацию DIGEST в мой Rest-API, да дайджест NOT basic!

Для простого использования я хотел использовать с безопасностью ограничений на web.xml:

<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>all</web-resource-name> 
     <url-pattern>/webapi/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>*</role-name> 
    </auth-constraint> 
</security-constraint> 

<login-config> 
    <auth-method>DIGEST</auth-method> 
    <realm-name>UserDatabase</realm-name> 
</login-config> 

аутентификации и фильтр CORS отлично работает там самостоятельно, но здесь начинается проблема: Ограничение безопасности выполняемый контейнером сервлетов перед фильтром CORS. Таким образом, алгоритм аутентификации не устанавливает необходимые заголовки запросов CORS (заголовки перекрестных доменов) в заголовках аутентификации дайджеста, в результате запрос CORS не будет аутентифицирован, потому что страница 401 дайджеста с «Challange» (nonce, qop , область и т. д.) отсутствуют необходимые заголовки для запроса перекрестного домена. Кто-нибудь теперь решение или реализация для этой проблемы? Или мне действительно нужно реализовать свой собственный дайджест-фильтр из-за CORS ?!

ответ

0

Вы можете попытаться переопределить CorsFilter в качестве Tomcat valve и убедиться, что он настроен на запуск до Digest Authenticator Valve.