Shiro总结

1. Shiro中的三个核心对象

(1)subject :代表当前用户,是安全管理中直接操作的对象
(2)SecurityManager: 安全管理器,所有和安全有关的操作都会和SecurityManager进行交互,它管理着所有的subject,是shiro的核心,相当于SpringMVC中DIspetcherServlet的角色
(3)Realm:realm提供了安全数据访问的数据支持,需要从realm中进行身份,角色和权限的验证,可以将realm看作是DAO(数据访问接口)

2. Shiro和web的整合思路

Shiro和web整合,也就是在web项目外面加上一层过滤器链,通过这个过滤器链进行身份校验,角色校验以及权限校验。所以,我们需要在web.xml文件中配置一个过滤器ShiroFilter,用来过滤请求,而为了获得配置文件的支持,我们还需要再配置一个监听器Listener,再项目启动时帮我们加载ini配置文件,构建SecurityManager,并产生一系列的过滤器链,提供安全控制服务

3. Shiro和Spring整合的思路

为了方便工厂的管理,我们也要将Shiro整合入Spring工厂中。我们曾经再web.xml中配置的ShiroFilter也就不在适用,我们需要从新使用一个DelegatingFilterProxy来接受所有请求,而这个过滤器会将请求转发给Spring工厂中和他同名的bean,随后进行安全控制,为了达成这个目的,我们需要将Realm也加入工厂,SecurityManager放入工厂,想其中注入Realm,再由工厂bean中注入SecurityManager,进行过滤请求,然后将配置导入Spring工厂,完成整合

4. SSM项目中有几个工厂?

有两个,一个是Spring工厂,一个是SpringMVC工厂,Spring工厂是父工厂,SpringMVC是子工厂,而Shiro只是属于Spring工厂的一部分组件

5. @RestController,@RequestBody的作用

1. @RestController 作用:等价于再本类的所有Handler加上@Response注解,当返回除了String外的对象时,会将该对象转换为JSON进行返回

2. @RequestBody 作用:将请求体中的JSON数据转换为java对象,前提时前端设置请求头为ContentType=Application/json,表示传送JSON数据,并将JSON串传递到后端,且请求类型为POST,不可为GET,因为GET没有请求体

6. SSM 中的工厂Bean

1:SqlSessionFactoryBean
2. ShiroFilterFactoryBean

你可能感兴趣的:(Shiro总结)