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

Luc*_*her 3 security tomcat el java-ee

当我在web.xml(Tomcat)中通过FORM指定安全登录系统时,如果身份验证不成功,有没有办法通过使用EL的通知form-error-page jsp捕获错误或异常?

我问这个是因为我想知道使用form-login-page中指定的相同JSP表单作为form-error-page jsp,因此JSTL Core c:如果通过以下方式捕获最终的Exception会很有用$ {not empty pageContext.exception}.

谢谢.

Bal*_*usC 5

只需检查它是否在回发时转发给自己(这意味着存在错误).您可以通过检查javax.servlet.forward.request_uri请求属性(指示最终用户在浏览器的地址栏中看到的请求URI)是否与/j_security_checkwhile 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>
Run Code Online (Sandbox Code Playgroud)