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