shiro登录源码分析
先从subject.login打断点开始看
进入DefaultSecurityManager的login方法,
继续往下走,进入AbstractAuthenticator的authenticate方法,
往下走,重点就是下面的authenticationinfo方法,
接着往下走,这里会先从缓存中去取用户的认证信息,这里就是为啥用户用户必须先认证才能授权了,如果,用户没有认证,那他在去授权的时候,缓存里没有用户信息,就会抛出异常。
接着往下走,会看到进入AuthenticatingRealm类的doGetAuthenticationInfo方法去认证,所以我们继承这个类,然后重写认证方法,就可以实现认证信息由我们控制。