JAVA全系列 教程
3762个小节阅读:7094.2k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
当Shiro认证失败后,会抛出AuthorizationException
异常。该异常的子类分别代表不同的认证失败原因,我们可以通过捕捉它们确定认证失败原因。
我们一般在Controller中处理认证异常:
xxxxxxxxxx
@RequestMapping("/user/login2")
public String login(String username, String password) {
try {
usersService.userLogin(username, password);
return "main";
} catch (DisabledAccountException e) {
System.out.println("账户失效");
return "fail";
} catch (ConcurrentAccessException e) {
System.out.println("竞争次数过多");
return "fail";
} catch (ExcessiveAttemptsException e) {
System.out.println("尝试次数过多");
return "fail";
} catch (UnknownAccountException e) {
System.out.println("用户名不正确");
return "fail";
} catch (IncorrectCredentialsException e) {
System.out.println("密码不正确");
return "fail";
} catch (ExpiredCredentialsException e) {
System.out.println("凭证过期");
return "fail";
}
}
注:
如果将异常信息提示给用户,尽量把异常信息表示的婉转一些。比如不管用户名还是密码错误,都提示用户名或密码错误,这样有助于提升代码的安全性。
实时效果反馈
1. 在Shiro中,表示用户名不正确的异常为
A DisabledAccountException
B UnknownAccountException
C IncorrectCredentialsException
D ExpiredCredentialsException
2. 在Shiro中,表示密码不正确的异常为
A DisabledAccountException
B UnknownAccountException
C IncorrectCredentialsException
D ExpiredCredentialsException
答案
1=>B 2=>C