shiroday1
1、shiro安全框架可以用来干嘛
验证用户身份
用户访问权限控制,比如:1、判断用户是否分配了一定的安全角色。2、判断用户是否被授予完成某个操作的权限
在非 Web 或 EJB 容器的环境下可以任意使用Session API
可以响应认证、访问控制,或者 Session 生命周期中发生的事件
可将一个或以上用户安全数据源数据组合成一个复合的用户 “view”(视图)
支持单点登录(SSO)功能
支持提供“Remember Me”服务,获取用户关联信息而无需登录
2、流程图
3、源码解析:
1)登录token的时候会选择一个realms
2)根据token去缓存中查找有没有认证信息,有的话直接返回info,但还是得比较(密码信息)凭证
3)通过hashmap存放ini文件里的账号
4、读写锁通过token里面账号去获取
5、如果info为空抛出 UnknownAccountException(msg)
6、如果账号正确,开始验证密码
7、如果密码不正确,抛出IncorrectCredentialsException(msg)