6.缓存管理

如图所示:

在第一次进行用户认证和用户授权的请求时,通过Realm会执行doGetAuthorizationInfo()方法和doGetAuthenticationInfo方法,然后操作数据库查询相关的认证信息和用户所拥有的权限。通过缓存管理器会把每次请求的认证或者是权限的缓存信息存入redis中。当再次发起相同的请求时不会走数据库,而是通过缓存管理器读取redis中的数据。

权限缓存:以AuthorizingRealm中的getAuthorizationInfo方法为切入点:

其中key为:shiro:cache:com.ikw.fir.admin.util.shiro.UserAuthorizingRealm.authorizationCache:用户id value为:该用户的权限和角色信息。

认证缓存:以AuthenticatingRealm中的getAuthenticationInfo方法为切入点:

 进入getCacheAuthenticationInfo方法

 进入cacheAuthenticationInfoIfPossible方法

 其中key为:shiro:cache:com.ikw.fir.admin.util.shiro.UserAuthorizingRealm.authenticationCache:用户id value为:用户的实体对象。

posted @ 2022-03-28 14:09  我所理解的代码  阅读(155)  评论(0)    收藏  举报