Apache Shiro文档暗示了一些用于捕获连续失败登录尝试(除其他外)的所需功能,但是我找不到具体的文档。目前我可以执行currentUser.login(token);无效的无限次数,不会陷入并抛出这个错误。我正在努力寻找源代码在哪里实现。如何为Apache Shiro配置threashold过度失败登录尝试?
这是真的有用吗?是否在shiro.ini中配置了阈值?任何人都可以指向我的文档(或确认它不存在)?
感谢
环境细节:四郎核心1.2.1和JDBC领域
开始文档 步骤3:处理成功或失败 如果登录方法悄悄地返回,这就是它 - 我们就大功告成了!主题已通过身份验证。应用程序线程可以继续不间断地进行,所有对SecurityUtils.getSubject()的进一步调用都将返回经过身份验证的Subject实例,并且对subject.isAuthenticated()的任何调用都将返回true。
但是如果登录尝试失败会发生什么?例如,如果最终用户提供了不正确的密码,或者访问了系统太多次并且他们的帐户被锁定了,该怎么办?
Shiro具有丰富的运行时AuthenticationException层次结构,可以准确指示尝试失败的原因。你可以在try/catch块中包装登录,并捕获你希望的任何异常,并相应地对它们做出反应。例如:
try {
currentUser.login(token);
} catch (UnknownAccountException uae) { ...
} catch (IncorrectCredentialsException ice) { ...
} catch (LockedAccountException lae) { ...
} catch (**ExcessiveAttemptsException** eae) { ...
} ... catch your own ...
} catch (AuthenticationException ae) {
//unexpected error?
}
//No problems, continue on as expected...
如果现有的异常类的一个不符合您的需要,可以创建自定义AuthenticationExceptions代表具体的故障场景 //没有问题,继续如预期... 完文件建立