gpt4 book ai didi

java - Glassfish JDBCRealm 登录异常

转载 作者:行者123 更新时间:2023-11-30 05:04:35 26 4
gpt4 key购买 nike

我在 glasfish 3.1 和 oracle11 中设置了 JDBCRealm。我的网络应用程序身份验证工作正常,但现在我希望能够在有人连续 3 次登录失败时使用react。查看我的服务器日志,我可以看到每次登录失败都会记录一个异常:

WARNING: WEB9102: Web Login Failed:
com.sun.enterprise.security.auth.login.common.LoginException:
Login failed: Security Exception

你们知道有什么方法可以在我的java代码中以编程方式捕获它吗?我尝试用谷歌搜索,但没有成功。

或者也许您知道更好的解决方案?请分享。

谢谢,达摩

更新:我需要重新表述这个问题(或正确解释情况)。每次身份验证失败时,我都想将其记录到我的数据库中。为此,我需要用户名、时间戳等。每次身份验证失败时,系统都会检查失败计数,如果超过 3,则会锁定用户帐户。因此,我可以在 loginerror.jsp 中执行此操作,但我需要用户名。在任何地方都找不到它:)。到目前为止,我尝试了一个过滤器,但似乎您无法过滤 j_security_check url-patter(至少在 glassfish 3.1 中不能)。实际上,这里的主要问题是获取登录失败者的用户名并传递给loginerror.jsp(任何形式:属性、参数等)。将去尝试一些java脚本和表单提交..呵呵。谢谢。

最佳答案

只有您掌握了登录信息,才能捕获它。您不需要将表单提交给 j_security_check,而是需要提交给使用 HttpServletRequest#login() 的 servlet。 .

try {
request.login(username, password);
} catch (ServletException e) {
// Handle.
}

关于java - Glassfish JDBCRealm 登录异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5513957/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com