7.用户登出
执行登出后,会通过SessionDao中的delete方法删除redis中的会话缓存和用户权限缓存,先删除用户权限缓存再删除会话缓存。详细流程如下:
项目里面配置shiro退出的url为filterChainDefinitionMap.put("/logout",“logout”),最终会调用到DelegatingSubject的logout方法,接着调用DefaultWebSecurityManager的logout方法。详细流程如下图:
执行((LogoutAware) authc).onLogout(principals)方法,清除用户缓存
执行delete(subject),清除用户会话缓存
执行stopSession(subject)方法
最后把session、principals设置为null,authenticated设置为false。
用户的登出流程结束。