[英]Java Container Managed Security Not Redirecting to Login Page
我有一個基於GlassFish 3構建的JSF 2 Web應用程序。我正在使用容器管理的安全性來處理登錄。 Web應用程序中的每個頁面都必須安全。 所有頁面和登錄頁面都在根目錄中。 問題是,當我鍵入URL以直接訪問受保護的頁面時,即使用戶未登錄,該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>
這里有一個教程,其中的引用可能是相關的。
由於安全角色映射是在部署時發生的,因此必須在部署應用程序之前打開默認映射。 要打開默認映射,請在管理控制台中選擇“配置”->“安全性”。 單擊“默認主體到角色映射和保存”旁邊的“啟用”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.