学习shiro的期间感觉对象session和cache有些混淆,遂理顺(当然不该混淆,只是有些忘了,整理下思路)。
混淆在于:
1、传统写法上是通过jsessionid获得session,继而获得session中的用户和session中存储的角色、权限信息
缺点是每次登录都要查询下角色、权限信息,再保存到session中,这样性能低下(原来的架构太简单了,没考虑到应该放到缓存中)。
2、shiro是通过sessionid获得subject(相当于当前用户),再将用户的角色、权限放到cache中,毕竟session时效较短,cache可以长期保留,提高了性能。