使用数据域无法正确呈现primefaces组件

时间:2012-06-07 09:11:54

标签: java css primefaces jdbcrealm

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

1 个答案:

答案 0 :(得分: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>

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