shiro总结1

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 :主体

猜你喜欢

转载自zqs520.iteye.com/blog/2280924