GlassFish 3 で構築している JSF 2 Web アプリケーションがあります。ログインを処理するためにコンテナー管理セキュリティを使用しています。Web アプリのすべてのページを安全にする必要があります。すべてのページは、ログイン ページとともにルート ディレクトリにあります。問題は、保護されたページに直接アクセスするために 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>