[英]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.