什么是认证?
身份认证,校验用户是否有相应的身份(登录验证)
Shiro实现认证的具体流程:
大致上来说是:
graph LR
Subject-->SecurityManager
SecurityManager-->Authenticator
Authenticator-->Realm
Realm-->Cryptography加密
复制代码
首先,用户填写登录信息发送请求到action中,action中调用subject中的login方法.
然后由于Subject对象是一个接口,因此我们查找它的实现类
DelegattingSubject是Subject的实现类
然而它又由securityManager 来调用
SecurityManager是一个接口,继续找它的实现类
认证安全管理
类中的这个方法继续将我们页面中封装好的token传递
最后这个token传到了ModularRealmAuthenticator这里来了.这里面的doSingleRealmAuthentication调用了我们自定义的Realm.并把我们在Action中封装的Token传递进Realm中进行认证校验.