大家好,今天给大家分享一个权限管理的框架Apache的Shiro,说实话本来我是准备看Spring Security的,毕竟是Spring家族的框架,和Spring整合更加容易一些。不过后来发现公司的项目使用的是Apache的Shiro,本着学以致用的原则,就先学Shiro,等以后有机会了Spring Security的还是会分享给大家的。
前言
在写这篇博客的时候我删删写写修改了很多次,最终还是决定不再长篇大论的给大家写一些理论性的知识,一方面,这些东西在网上一搜到处都是;另一方面,及即使我写,也不一定有大牛们写的好。所以,我决定只分享一些我在学习过程中的一些感受,大家如果需要系统的学习Shiro我给大家推荐两个地方:
- ;
- 张开涛老师的
我学习的是时候也是根据张老师的书学习的,在这里首先要感谢张老师的无私奉献。
Shiro 简介
Shiro是Apache出品的一套安全框架。官方给出的介绍是:
Apache Shiro™是一个强大且易用的Java安全框架,执行身份验证、授权、密码学和会话管理。使用Shiro易于理解的API,您可以快速轻松地保护任何应用程序——从最小的移动应用程序到最大的web和企业应用程序。
由此可知,Shiro的主要功能是 认证、授权、加密密和会话管理。
Shiro 特点
对比Spring Security,它相当简单,在实际工作时我们要根据自己的需求做选择,所以有时候使用小而简单的Shiro就足够了。像我这次跟的项目使用的就是Shiro,它的特点呢,在我看来最主要可以分为以下几点:
- 它把用户称为Subject,对用户的认证、授权其实都是对Subject的操作。
- Shiro不依赖于Spring框架,SecurityManager对Session的管理在Web环境和JavaSE的环境下都可以使用。在Web环境下就不说了它管理的是HttpSession,而在JavaSE的环境下,它有一个自带的Session可以使用,并且HttpSession和Shiro的Session是可以互通的,比如说我们在控制层中像session中放入属性,正常情况下在业务层想要获取是不太方便的,如果有了Shiro,我们可以直接从Shiro的Session中获取HttpSession中存放的属性,十分的方便。