在 ShiroDatabaseRealm 中对登录结果进行异常捕获
shiro的登录判断是在 ShiroDatabaseRealm 中通过 doGetAuthenticationInfo() 实现的
ShiroDatabaseRealm 是用户自定义的 AuthorizingRealm 子类,用于处理具体的登录逻辑
在 ShiroDatabaseRealm 中做异常捕获的原因是方便后续拦截器直接获取登录失败的原因
public class ShiroDatabaseRealm extends AuthorizingRealm {
private UniversityMemberServiceImpl universityMemberService;public void setUniversityMemberService(UniversityMemberServiceImpl universityMemberService) { this.universityMemberService = universityMemberService; } @Override protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcToken) throws
AuthenticationException {
UsernamePasswordCheckCodeToken token = (UsernamePasswordCheckCodeToken) authcToken;
token.setRememberMe(false);UniversityMemberDTO member = universityMemberService.getUniversityMember(token.getUsername()); // 未获取到用户信