1

我正在使用数据领域进行登录身份验证。它工作正常。我还在我的应用程序中使用 primefaces 3.2 组件,它们也可以正常工作,但问题出现在登录前的主页上。primefaces 组件未正确呈现(例如,选项卡菜单显示为一个下方的简单链接,按钮显示为简单的 jsf 按钮等)并且登录工作正常,当我从浏览器清除浏览历史记录时, primefaces 已正确呈现,但现在领域无法工作,我被重定向到错误页面,为什么会发生这种情况?我该如何解决?由于这个原因,我的应用程序的主页被毁了。

4

1 回答 1

2

您的 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>

您需要根据您的安全策略和文件夹结构进行调整。

于 2012-06-07T09:28:07.077 回答