Управляемая безопасность Java-контейнера не перенаправляет на страницу входа
У меня есть веб-приложение JSF 2, которое я создаю на GlassFish 3. Я использую управляемую контейнером безопасность для обработки входа в систему. Каждая страница в моем веб-приложении должна быть защищена. Все страницы находятся в корневом каталоге вместе со страницей входа. Проблема заключается в том, что когда я набираю URL-адрес для прямого доступа к защищенной странице, он отображается, даже если пользователь не вошел в систему. Я хотел бы, чтобы каждая страница на моем сайте была защищена, за исключением страницы входа, чтобы пользователь имел доступ к сайту. через эту страницу входа. Есть идеи, почему он не блокирует запросы на другие страницы, когда пользователь не вошел в систему?
Вот соответствующий фрагмент из моего web.xml:
<welcome-file-list>
<welcome-file>index.jsf</welcome-file>
</welcome-file-list>
<security-constraint>
<display-name>EmployeeConstraint</display-name>
<web-resource-collection>
<web-resource-name>Pages</web-resource-name>
<description/>
<url-pattern>/home.jsf</url-pattern>
<url-pattern>/applicantHome.jsf</url-pattern>
<url-pattern>/assessmentFinished.jsf</url-pattern>
<url-pattern>/help.jsf</url-pattern>
<url-pattern>/memberInfo.jsf</url-pattern>
<url-pattern>/phrases1.jsf</url-pattern>
<url-pattern>/phrases2.jsf</url-pattern>
<url-pattern>/quotations1.jsf</url-pattern>
<url-pattern>/quotations2.jsf</url-pattern>
<!--url-pattern>/myProfile.jsf</url-pattern-->
</web-resource-collection>
<auth-constraint>
<role-name>Employee</role-name>
<role-name>Applicant</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<display-name>ApplicantConstraint</display-name>
<web-resource-collection>
<web-resource-name>Pages</web-resource-name>
<description/>
<url-pattern>/home.jsf</url-pattern>
<url-pattern>/applicantHome.jsf</url-pattern>
<url-pattern>/assessmentFinished.jsf</url-pattern>
<url-pattern>/help.jsf</url-pattern>
<url-pattern>/memberInfo.jsf</url-pattern>
<url-pattern>/phrases1.jsf</url-pattern>
<url-pattern>/phrases2.jsf</url-pattern>
<url-pattern>/quotations1.jsf</url-pattern>
<url-pattern>/quotations2.jsf</url-pattern>
</web-resource-collection>
</security-constraint>
<security-constraint>
<display-name>ReportsConstraint</display-name>
<web-resource-collection>
<web-resource-name>Pages</web-resource-name>
<description/>
<url-pattern>/reports.jsf</url-pattern>
<url-pattern>/indReport.jsf</url-pattern>
<url-pattern>/indReportResults.jsf</url-pattern>
<url-pattern>/groupReport.jsf</url-pattern>
<url-pattern>/cloneReport.jsf</url-pattern>
<url-pattern>/home.jsf</url-pattern>
</web-resource-collection>
</security-constraint>
<security-constraint>
<display-name>AdministratorConstraints</display-name>
<web-resource-collection>
<web-resource-name>Pages</web-resource-name>
<description/>
<url-pattern>/admin.jsf</url-pattern>
<url-pattern>/home.jsf</url-pattern>
<url-pattern>/applicantHome.jsf</url-pattern>
<url-pattern>/assessmentFinished.jsf</url-pattern>
<url-pattern>/cloneBuilder.jsf</url-pattern>
<url-pattern>/cloneBuilderMenu.jsf</url-pattern>
<url-pattern>/cloneBuilderRangeEditor.jsf</url-pattern>
<url-pattern>/cloneReport.jsf</url-pattern>
<url-pattern>/cloneReport.jsf</url-pattern>
<url-pattern>/groupReport.jsf</url-pattern>
<url-pattern>/help.jsf</url-pattern>
<url-pattern>/indReport.jsf</url-pattern>
<url-pattern>/indReportResults.jsf</url-pattern>
<url-pattern>/licenseManager.jsf</url-pattern>
<url-pattern>/management.jsf</url-pattern>
<url-pattern>/memberInfo.jsf</url-pattern>
<url-pattern>/phrases1.jsf</url-pattern>
<url-pattern>/phrases2.jsf</url-pattern>
<url-pattern>/quotations1.jsf</url-pattern>
<url-pattern>/quotations2.jsf</url-pattern>
<url-pattern>/reports.jsf</url-pattern>
<url-pattern>/userAdmin.jsf</url-pattern>
</web-resource-collection>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>PerProUserAuth</realm-name>
<form-login-config>
<form-login-page>/index.jsf</form-login-page>
<form-error-page>/index.jsf</form-error-page>
</form-login-config>
</login-config>
<security-role>
<description/>
<role-name>Employee</role-name>
</security-role>
<security-role>
<description/>
<role-name>Applicant</role-name>
</security-role>
<security-role>
<description/>
<role-name>Administrator</role-name>
</security-role>
<security-role>
<description/>
<role-name>Reports</role-name>
</security-role>
<security-role>
<description/>
<role-name>Former Employee</role-name>
</security-role>
1 ответ
Здесь есть учебник с цитатой, которая может быть актуальной.
Поскольку сопоставление ролей безопасности происходит во время развертывания, сопоставление по умолчанию должно быть включено до развертывания приложения. Чтобы включить сопоставление по умолчанию, выберите "Конфигурация" -> "Безопасность" в консоли администратора. Нажмите "Включено" рядом с "Основной участник по умолчанию для сопоставления ролей и сохранения".