我正在使用数据领域进行登录身份验证。 它工作正常。 我也在我的应用程序中使用 Primefaces 3.2 组件,它们也可以正常工作,但登录前问题出现在主页上。素数组件未正确呈现(例如,选项卡菜单显示为一个接一个的简单链接,按钮显示为简单的jsf按钮等)并且登录工作正常,当我从浏览器中清除浏览历史记录时,素数被正确呈现,但现在领域无法工作,我被重定向到错误页面, 为什么会这样?我该如何解决?因此,我的应用程序的主页被毁了。
您的Primefaces资源似乎位于受限文件夹中。从安全约束定义中排除资源文件夹。
这是我的一个项目的示例配置。首先,我限制对整个项目的访问(仅允许特定角色访问):
<security-constraint>
<display-name>Secured project</display-name>
<web-resource-collection>
<web-resource-name>Secured project</web-resource-name>
<description/>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<description/>
<role-name>user</role-name>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
然后,我为任何用户都可以访问的文件夹添加例外:
<security-constraint>
<display-name>Exceptions</display-name>
<web-resource-collection>
<web-resource-name>Exceptions</web-resource-name>
<description/>
<url-pattern>/resources/*</url-pattern>
<url-pattern>/faces/resources/*</url-pattern>
<url-pattern>/faces/javax.faces.resource/*</url-pattern>
</web-resource-collection>
</security-constraint>
您需要根据安全策略和文件夹结构进行调整。