Shiro是Apache下的一个开源项目,我们称之谓Apache Shiro,它是一个易用与Java项目的安全框架,提供了认证、授权、加密、会话管理,与Spring Security一样都是做一个权限的安全框架,但是与Spring Security
相比,Shiro使用了更简单易懂易于使用的授权方式。
Shiro的三大核心组件:
1、Subject------------------当前用户
2、SecurityManage--------管理所有的Subject
3、Reamls------------------权限信息的验证
我们需要实现Reamls的Authentication与Authorization,其中Authentication用于验证用户身份,Authorization用于授权访问控制。
Shiro核心是通过Filter来实现,就好像SpringMVC用DispatchServlet来做控制一样。既然使用Filter,那么我们也可以猜到,Shiro是通过URL规则来进行过滤和权限校验,所以我们需要定义一系列的URL规则和访问权限。
另外通过Shiro提供的会话管理可以获取Session中的信息,Shiro也提供缓存功能,使用CacheManage来管理。
二、SpringBoot集成Shiro核心分析
集成Shiro我们需要知道Shiro框架大概的一些管理对象。
1、ShiroFilterFactory:Shiro过滤工厂类,具体的实现类是ShiroFilterFactoryBean,该实现类依赖与SecurityManage安全管理器。
2、SecurityManage:Shiro的安全管理,主要是安全认证管理、缓存管理、cookie管理。所以在实际的开发中我们主要和SecurityManage打交道,ShiroFilterFactory主要配置好了Filter就可以了。
3、Reamls:身份信息、权限信息的验证。
4、缓存管理、记住密码等功能,这些大部分只要进行简单的实现,然后注入到SecurityManage让Shiro的安全管理器进行管理就好了。