在我的应用程序中登录后重定向

时间:2013-11-08 16:33:30

标签: jsf

早上好,我需要你的帮助: 会发生的事情是我使用jboss服务器在java中编程并使用jsf接口(primefaces),我的问题是因为当我在应用程序中使用登录进行身份验证时,我会被重定向到另一个页面而不是我想要的页面。 p>

登录页面的网址是: ... login.xhtml

登录正确后,请转到以下网址: ... javax.faces.resource / primefaces.js.xhtml

当我的登录正确时,我希望将我带到以下网址: ...的index.xhtml

除了我的web.xml文件,还有以下代码:

<welcome-file-list>
    <welcome-file>index.xhtml</welcome-file>
</welcome-file-list>

另外我注意到当我删除文件pom.xml primefaces上的依赖项时,loguearme将我引导到正确的url: ...的index.xhtml

请帮助我。

1 个答案:

答案 0 :(得分:0)

容器管理的安全性将重定向到最后一个触发身份验证检查的HTTP请求。在你的情况下,它显然是自动包含的PrimeFaces JavaScript文件。看起来你的安全约束中有一个过于通用的URL模式,例如/**.xhtml,不仅包括JSF页面,还包括CSS / JS /图像资源。该primefaces.js文件显然在登录页面中被引用。因此,当打开登录页面时,引用的primefaces.js文件将再次触发身份验证检查,并且在成功登录后将记住使用其URL重定向。

您希望从身份验证检查中排除JSF资源。您可以通过安全约束排除公共URL模式/javax.faces.resource/*而不使用 auth约束来实现此目的:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Allowed resources.</web-resource-name>
        <url-pattern>/javax.faces.resource/*</url-pattern>
    </web-resource-collection>
    <!-- No <auth-constraint>! -->
</security-constraint>