专栏首页BeJavaGodShiro系列(3) - What is shiro?

Shiro系列(3) - What is shiro?

什么是shiro?

Shiro是apache的一个开源权限管理的框架,它实现用户身份认证,权限授权、加密、会话管理等功能,组成了一个通用的安全认证框架

使用shiro来实现权限管理,可以非常有效的提高团队开发效率,从而降低开发成本以及维护成本。

shiro 的基本架构

Subject:主体,subject记录了当前操作的用户信息。我们对这个subject进行认证和授权。

SecurityManager:安全管理者,主体进行认证和授权都 是通过securityManager进行。是shiro的核心。

Authenticator:用于用户登录认证的,主体的认证是否通过都是由authenticator来做的。

Authorizer:授权鉴权,主体进行授权是否通过由authorizer来做的。

Session Manager:web应用中需要对session进行会话管理,那么shiro本身也有session管理的方式,用sessionManager来做的。这个可以用来实现单点登录sso。

SessionDao: 统一管理session,不论是分布式还是单应用都帮你做好了。比如对session的塞入一个用户和删除一个用户,而这个是用的redis这样的缓存的话,就要用到sessionDAO。

Cache Manager:缓存管理者,将用户权限信息缓存起来,这样可以提高性能,不必频繁地读取数据库,减少数据库压力。ehcache,redis等

realm:领域,范围,可以理解为数据源,认证和授权的相关数据都是存在这里的。

cryptography:密码管理,提供各种类型的加密算法,比如MD5等。

使用shiro所需要的jar包(基础)

<shiro.version>1.3.2</shiro.version>


<!-- shiro -->
<dependency>
 <groupId>org.apache.shiro</groupId>
 <artifactId>shiro-core</artifactId>
 <version>${shiro.version}</version>
</dependency>
<dependency>
 <groupId>org.apache.shiro</groupId>
 <artifactId>shiro-web</artifactId>
 <version>${shiro.version}</version>
</dependency>
<dependency>
 <groupId>org.apache.shiro</groupId>
 <artifactId>shiro-spring</artifactId>
 <version>${shiro.version}</version>
</dependency>
<dependency>
 <groupId>org.apache.shiro</groupId>
 <artifactId>shiro-ehcache</artifactId>
 <version>${shiro.version}</version>
</dependency>
<dependency>
 <groupId>org.apache.shiro</groupId>
 <artifactId>shiro-quartz</artifactId>
 <version>${shiro.version}</version>
</dependency>

<未完待续...>

具体内容同步更新文章以及视频到微信公众号,知乎,豆瓣,cnblogs,今日头条以及新浪微博,以官网itzixi.com为主

本文分享自微信公众号 - BeJavaGod(wxleechenxiang),作者:itzixi.com

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-10-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • FreeMarker静态模板结合spring展示

    freemarker可以脱离web使用 前一篇文章使用了普通的方法 这回说说结合spring pom额外引入这个jar包 <groupId>org.spring...

    风间影月
  • ssm中使用hibernate-validator验证BO

    目前比较流行的验证做法:前端jquery-form-validate + 后端hibernate-validate 在pom中添加相关jar: ? sprin...

    风间影月
  • 插件推荐 - twitter分布式主键id生成器与SID

    推荐一个插件,那就是idworker,用了一年了,还是挺好用,先来说说干嘛的吧,鉴于现在主键的生成模式先来探讨一下 1、id自增:比较普遍,但是在数据备份恢复的...

    风间影月
  • shiro springboot整合

    其实只要知道shiro和spring整合,那么使用springboot也就一样,通过springboot则是将之前的一堆复杂的配置,全部写到代码中去,同样作为m...

    sucl
  • Shiro学习笔记六(自定义Reaml-使用数据库设置 user roles permissions)

    对于什么是Realm,我使用过之后,个人总结一下:shiro要进行身份验证,就要从realm中获取相应的身份信息来进行验证,简单来说,我们可以自行定义realm...

    梅花
  • Shiro学习笔记五(Shiro标签,及通配符)

        用户[<shiro:principal/>]拥有角色admin<br/>

    梅花
  • Shiro学习笔记(一)

    梅花
  • 安全验证框架shiro(三)

    首先看该项目配置相关的信息,使用的idea,创建maven项目,并在pom.xml中加入如下依赖:

    sucl
  • 安全验证框架shiro(一)

    Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的...

    sucl
  • 从零开始写项目终极【维护网站、修复Bug】

    url自动携带jsessionid 在我使用浏览器收藏了我写的网站的时候,有的时候会访问不了页面。 看了一下原因,是由于url携带了jsessionId,我就奇...

    Java3y

扫码关注云+社区

领取腾讯云代金券