почему я получаю защищенную страницу вместо страницы входа? - PullRequest
0 голосов
/ 18 марта 2012

Я использую JAAS для защиты своего веб-приложения.Как видно из названия, проблема в том, что я получаю домашнюю страницу, которая находится в защищенной папке, а не на странице входа.На самом деле домашняя страница - это моя страница приветствия.Кстати, он отлично работает, когда я пишу URL (/myappJaas/protected/admin/homeadmin.xhtml) в веб-браузере.Это файл web.xml:

<welcome-file-list>
    <welcome-file>/protected/admin/homeadmin.xhtml</welcome-file>
</welcome-file-list>
<security-constraint>
    <web-resource-collection>
        <web-resource-name>admins</web-resource-name>
        <url-pattern>/protected/admin/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>admin</role-name>
    </auth-constraint>
</security-constraint>
<login-config>
    <auth-method>FORM</auth-method>
    <form-login-config>
        <form-login-page>/public/login.xhtml</form-login-page>
        <form-error-page>/public/errorlogin.xhtml</form-error-page>
    </form-login-config>
</login-config>
<security-role>
    <role-name>admin</role-name>
</security-role>

1 Ответ

1 голос
/ 19 марта 2012

Вы неправильно поняли цель <welcome-file>.Он должен представлять единственное имя файла индекса по умолчанию для каталога.Этот файл будет представлен конечному пользователю, когда он запрашивает каталог.Затем контейнер будет прозрачно отправлять сконфигурированный файл приветствия конечному пользователю без переадресации.Однако текущий URL-адрес все еще находится в свободном доступе.

Вместо этого вы хотите отправить полноценное перенаправление.Вы можете сделать это в фильтре, или <meta http-equiv="refresh"> в index.xhtml файле приветствия, или в конструкторе управляемого компонента, связанного с фиктивным index.xhtml файлом приветствия.

...