shiro总结1

AndrewYuan 2016-03-06

1:通过ini配置文件创建securitymannager;

2:调用subject.login方法主体提交认证,提交的token

3:securitymannager进行认证,securitymannager最终由modularrealmauthenticator进行认证;

4:modularrealmauthenticator调用inirealm(给realm传入tolen)去ini配置文件中查询用户信息

5:inirealm根据输入的token(usernamepasswordtoken)从shiro-first.ini查询用户信息,根据账号查询用户信息(账号,密码)

如果查询到用户信息,就给modularrealmauthenticator返回用户信息(账号,密码)

如果查询不到,就给modularrealmauthenticator返回null

6:modularrealmauthenticator接收inirealm返回authentication认证信息

返回的认证信息时null,modularrealmauthenticator抛出异常unknownaccountexception

如果返回认证信息不是null(说明inireal找到了用户),对inirealm返回用户密码(在ini文件中存在)

shiro认证流程:(掌握)
           1、subject(主体)请求认证,调用subject.login(token)
           2、SecurityManager(安全管理器)执行认证
           3、SecurityManager通过ModularRealmAuthenticator进行认证。
           4、ModularRealmAuthenticator将token传给realm,realm根据token中用户信息从数据库查询用户信息(包括身份和凭证)
    5、realm如果查询不到用户给ModularRealmAuthenticator返回null,ModularRealmAuthenticator抛出异常(用户不存在)
           6、realm如果查询到用户给ModularRealmAuthenticator返回AuthenticationInfo(认证信息)
           7、ModularRealmAuthenticator拿着AuthenticationInfo(认证信息)去进行凭证(密码 )比对。如果一致则认证通过,如果不致抛出异常(凭证错误)。


 

subject:主体

相关推荐