Ошибка 403 при обновлении углового приложения в Wildfly - PullRequest
0 голосов
/ 29 июня 2018

Я реализовал угловое приложение 6, используя стратегию определения местоположения хэша, и хочу развернуть его как WAR в Wildfly. Приложение работает нормально, однако перезагрузка страницы (например, http://localhost:9390/MyApp/app/#/login) приводит к запрещенной ошибке 403. Вот настройка:

WAR-файл:

/app/* -> angular app generated by ng-cli
/error403.html -> simple error page
/WEB-INF
/WEB-INF/web.xml
/WEB-INF/classes/... REST services

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
    <display-name>MyApp</display-name>

    <welcome-file-list>
        <welcome-file>app/index.html</welcome-file>
    </welcome-file-list>


    <error-page>
        <error-code>403</error-code>
        <location>/error403.html</location>
    </error-page>
</web-app>

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 11 июля 2018

К кому это может относиться: Ошибка 403 возникает из-за стратегии определения местоположения на основе хеша. Все, начинающееся с # в URI, удаляется перед отправкой клиенту. В моем примере URL оканчивается на /app/, который распознается как каталог по undertow. Поскольку список каталогов по умолчанию не разрешен, возвращается 403. Решением является реализация WebFilter, который обнаруживает этот запрос и перенаправляет на угловую страницу /app/index.html.

...