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

时间:2013-01-04 16:30:06

标签: security java-ee tomcat el

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

我问这个是因为我想知道使用form-login-page中指定的相同JSP表单作为form-error-page jsp,因此JSTL Core c:if对于捕获一个是有用的通过$ {not empty pageContext.exception}。

的最终异常

感谢。

1 个答案:

答案 0 :(得分:5)

只需检查它是否在回发时转发给自己(这意味着存在错误)。您可以通过检查javax.servlet.forward.request_uri请求属性(指示最终用户在浏览器的地址栏中看到的请求URI)是否以/j_security_check结束HttpServletRequest#getMethod()等于{{POST来检查1}}。

<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>