Security JavaEE-声明性安全性-表单登录系统

Security JavaEE-声明性安全性-表单登录系统,security,jakarta-ee,tomcat,el,Security,Jakarta Ee,Tomcat,El,当我通过web.xml(Tomcat)中的表单指定安全登录系统时,如果身份验证未成功,是否有办法通过通知表单错误页面jsp捕获错误或异常 我问这个问题是因为我想知道如何使用表单登录页面中指定的相同JSP表单作为表单错误页面JSP,因此JSTL核心c:if将有助于通过${not empty pageContext.Exception}捕获最终异常 谢谢。只需在回发时检查它是否转发到自身(这意味着有错误)。您可以通过检查javax.servlet.forward.request_urirequest

当我通过web.xml(Tomcat)中的表单指定安全登录系统时,如果身份验证未成功,是否有办法通过通知表单错误页面jsp捕获错误或异常

我问这个问题是因为我想知道如何使用表单登录页面中指定的相同JSP表单作为表单错误页面JSP,因此JSTL核心c:if将有助于通过${not empty pageContext.Exception}捕获最终异常


谢谢。

只需在回发时检查它是否转发到自身(这意味着有错误)。您可以通过检查
javax.servlet.forward.request_uri
request属性(指示终端用户在浏览器地址栏中看到的请求uri)是否以
/j_security_check
结束,而
HttpServletRequest#getMethod()
等于
POST

<c:if test="${pageContext.request.method == 'POST' && fn:endsWith(requestScope['javax.servlet.forward.request_uri'], '/j_security_check')}">
    <span class="error">Unknown login, please try again.</span>
</c:if>

未知登录名,请重试。