Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf <;表单错误页>;使用j_安全检查不使用weblogic默认身份验证_Jsf_Weblogic_Oracle Adf_J Security Check - Fatal编程技术网

Jsf <;表单错误页>;使用j_安全检查不使用weblogic默认身份验证

Jsf <;表单错误页>;使用j_安全检查不使用weblogic默认身份验证,jsf,weblogic,oracle-adf,j-security-check,Jsf,Weblogic,Oracle Adf,J Security Check,最近,我们的JSF项目从tomcat迁移到weblogic服务器。在tomcat版本中,我们使用Spring安全性进行身份验证。在weblogic中,我们使用容器管理的身份验证机制执行身份验证 除了j_security_check身份验证失败外,其他一切都正常工作,视图不会指向web.xml的form error page元素中定义的错误页面,而是重新加载loginPage.jspx页面 下面是从my web.xml中截取的 <login-config> <auth

最近,我们的JSF项目从tomcat迁移到weblogic服务器。在tomcat版本中,我们使用Spring安全性进行身份验证。在weblogic中,我们使用容器管理的身份验证机制执行身份验证

除了j_security_check身份验证失败外,其他一切都正常工作,视图不会指向web.xml的form error page元素中定义的错误页面,而是重新加载loginPage.jspx页面

下面是从my web.xml中截取的

<login-config>  
    <auth-method>FORM</auth-method>     
    <realm-name>MySecurityRealm</realm-name>
    <form-login-config>
        <form-login-page>/faces/loginPage.jspx</form-login-page>
        <form-error-page>/faces/errorPage.jspx</form-error-page>            
    </form-login-config>
</login-config>

任何建议都会有帮助。谢谢。

那么,您使用的是
而不是
?到底为什么?相关报道:谢谢你的回复。我不想更改我的登录页面。我使用JSF自定义异常处理解决了这个问题。当登录方法中的身份验证失败时,它会抛出运行时异常,该异常在自定义异常处理程序中被捕获,在自定义异常处理程序中,我再次将用户重定向到登录页面,并附加请求参数error=true。我可以向用户显示登录失败消息。
public String login() throws IOException, ServletException {
    ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
    HttpSession session = (HttpSession) context.getSession(false);
    session.removeAttribute("oracle.adf.share.http.HttpSessionScopeAdapter");
    RequestDispatcher dispatcher = ((ServletRequest) context.getRequest()).getRequestDispatcher("/j_security_check");
    dispatcher.forward(((ServletRequest) context.getRequest()), (ServletResponse) context.getResponse());
    FacesContext.getCurrentInstance().completeResponse();
}