0903

shiro的login(token)方法源码

2021-09-03 15:27:08 星期五

image

subject.login(token);

image

往下点

image

image

image
这里realms就是从数据库拿到的用户登陆信息

image

image

image
点那个 SimpleAccountRealm 类
这个类中的doGetAuthenticationInfo方法,比较用户名和密码

tokenCredentials拿到的是用户输入的密码
accountCredentials拿到的是数据库中与用户输入的用户名一致的密码
两个密码做比较,自此,简单的shiro登录认证流程结束

简单总结一下:shiro的登录方法,先会从realm(可以理解为数据库)中获取到数据库中所有的用户数据,然后与token(用户输入的用户名)中的用户名进行比较,若有相同的,则返回数据库中的用户信息(与token中的用户名一致的用户,包括用户名和密码),接着开始校验密码,拿返回的用户信息与token中的密码做校验,
(1)用户名存在接着校验密码,若密码错误,抛出IncorrectCredentialsException异常,密码正确,则认证通过
(2)用户名不存在则抛出UnknownAccountException异常

posted @ 2021-09-03 15:47  Drsyq  阅读(323)  评论(0)    收藏  举报