Shiro框架学习笔记(一)shiro简介以及工作流程

不知道大家在做java web项目的时候有没有想过这个,虽然我们一般做项目时都会选择让用户先注册登录之后才能看到我们项目的具体内容,在知道了内部页面的路径之后我们能够在未登录的情况下,直接在网页中输入我们内部页面的绝对路径访问到呢?
答案当然是可以的,所以这时候就牵扯出了一些问题,我们怎么才能对用户进行身份验证,这样才能确保用户必须登录过后才能浏览相关的界面。这时候就有两种方案,一种是直接通过过滤器实现,在每一用户的请求操作时都检查一遍用户用户是否已经登录,否则就禁止访问,第二种就是我要说的shiro框架。官方文档上是这样介绍shiro的

shiro

  1. Apache Shiro 是 Java 的⼀个安全(权限)框架。Shiro 可以轻松的完成:身份认证、授权、加密、会话管理等功能

  2. Shiro 可以⾮常容易的开发出⾜够好的应⽤,其不仅可以⽤在JavaSE 环境,也可以⽤在 JavaEE 环境。功能强⼤且易⽤,可以快速轻松地保护任何应⽤程序 ( 从最⼩的移动应⽤程序到最⼤的Web和企业应⽤程序。)

  3. ⽅便的与Web 集成和搭建缓存。

简单来说就是对用户登录是进行检测并且一直持续到会话结束,其次就是对用户的角色以及权限进行检测,检查该用户是否具有相应的权限或者是是否具备相应的角色身份。其次就是对用户的一些私密信息进行加密处理。这就是shiro大致所做的工作。

接下来,介绍一下shiro的工作流程。
shiro工作流程
首先shiro工作流程中又三个重要的组件,分别是Subject,SecurityManager,以及Realm。
先来介绍Subject,即为主体也就相当于目前操作系统的用户直观来说就相当于目前登录的用户。这里Subject主要是用来检测用户的登录,登录完之后就主要将工作交给SecurityManager来完成
其次就是SecurityManager主要来检测目前的用户Subject的一系列的安全操作,比如说当前用户所具备的权限,以及该用户的角色是哪一层级的,在用户执行一系列操作的时候进行授权,避免越权的操作。
之后就是Realm,他主要就是负责与数据库交互,就比如说SecurityManager来检测用户的权限是,就需要Realm从数据库中取出该用户的权限以及角色信息,之后才能方便SecurityManager来进行授权的操作。

猜你喜欢

转载自blog.csdn.net/lovely__RR/article/details/107048440
今日推荐