博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shiro系列(3) - What is shiro?
阅读量:6214 次
发布时间:2019-06-21

本文共 1454 字,大约阅读时间需要 4 分钟。

什么是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>

 

 

转载地址:http://yosja.baihongyu.com/

你可能感兴趣的文章
微软的面试变革:提供真实数据,使用实用的问题
查看>>
严肃科普:12306能扛得住明星并发出轨级的流量吗?
查看>>
js的call函数"源码"
查看>>
JHipster 3.0发布,新增微服务支持
查看>>
池化.NET内存流以解决大内存堆分配问题
查看>>
道德规范的心理学透视
查看>>
TensorFlow、DMTK与SystemML孰优孰劣
查看>>
分布式系统的开发经验与心得
查看>>
Node项目之评分系统(三)- Web开发
查看>>
Leetcode 9. Palindrome Number
查看>>
从Handler.post(Runnable r)再一次梳理Android的消息机制(以及handler的内存泄露)
查看>>
[LintCode/LeetCode] Decode Ways [String to Integer]
查看>>
eclipse的学习
查看>>
Canvas制作的下雨动画
查看>>
ubuntu16.04安装Ulipad
查看>>
当我们谈网络时,我们谈些什么(4)-- TCP和UDP
查看>>
同步和异步、阻塞和非阻塞的区别
查看>>
Python数据分析入门之pandas总结基础(一)
查看>>
[LintCode] Invert Binary Tree
查看>>
Array.from的妙用
查看>>