JAVA Web应用程序中基于表单的身份验证重试

时间:2014-07-18 20:17:04

标签: java java-ee authentication jboss

在java Web应用程序中使用基于表单的身份验证时,如何指定最大登录重试次数?

2 个答案:

答案 0 :(得分:1)

您需要一个支持此功能的自定义域实现。实际身份验证由配置为与您的应用程序一起使用的领域管理(FileRealm,LDAPRealm,JDBCRealm - 这些只是概念性示例,而不是JBoss的规范)。

默认情况下,典型的开箱即用不支持重试锁定行为。

所以,你必须创建自己的。

领域是特定于容器的。例如,JBoss的领域可能不适用于Glassfish或Tomcat。也就是说,它们都很简单。

您可以轻松地开始为JBoss复制基于JDBC的领域实现,并为重试检查添加一些逻辑。领域代码相当简单。您仍然需要外部逻辑来执行重置锁定,在检测到锁定时发送警报等操作

但它的坚果是,你需要一个自定义领域才能解决这个问题。

答案 1 :(得分:0)

从您解释的方案中,您可以使用计数器来跟踪登录尝试次数,您可以捕获客户端IP /位置以应用特定限制。 可能有两个失败的案例。 1.登录ID无效 2.密码不正确

案例1:登录ID无效 如果登录ID无效,您可以要求用户输入正确的ID,多次输入或最多5/8次尝试,以确保没有人试图破解编程结构。

案例2:密码不正确 如果登录ID有效,并且输入的密码不正确,则平均应允许用户输入最多3次,然后将用户重定向到安全问题模式或CAPTCHA模式或密码更改模式

无论如何,大部分登录系统都是通过DB实现的,即使您使用任何加密机制,但要确保跟踪您的日志以分析黑客攻击尝试。