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

标签 security jakarta-ee tomcat el

当我通过 web.xml (Tomcat) 中的 FORM 指定安全登录系统时,如果身份验证不成功,是否可以通过使用 EL 的通知表单错误页面 jsp 捕获错误或异常?

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

谢谢。

最佳答案

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

关于security - JavaEE - 声明式安全 - 表单登录系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14160985/

相关文章:

java - 如何避免finally block 不执行的情况

java - 使用 log4j 为每个 Web 应用程序和共享库分离日志文件

java - Springboot 为什么设置 spring-boot-starter-tomcat 为提供的

iphone - ipad锁定: launch app on boot?

ruby-on-rails - 为什么我的 View 被标记为 XSS 漏洞?

java - 如何在 web.xml 中定义一般/回退错误页面

java - 将堆栈跟踪重定向到日志文件而不是控制台输出?

java.lang.ClassNotFoundException : com. 谷歌.gwt.user.client.rpc.RemoteService

security - MVC 5 ViewBag 安全

security - 单个 SSL 证书,多个站点?