frame shiro 概述
权限管理
权限管理包括用户身份认证和授权两部分,简称认证授权。
身份认证包括用户口令登陆、指纹验证、刷卡等方式。
授权即访问控制,控制谁能访问哪些资源,主体身份认证后分配权限以访问自己可以访问的资源。
主体发出请求 --> 判断是否允许匿名访问(淘宝首页) --> 判断是否通过认证 --> 输入用户名口令认证 --> 判断是否通过认证
Apache Shiro 简介
Apache Shiro 是java的一个安全框架。目前使用Apache Shiro的人越来越多,因为它相当简单,对比spring Security,可能没有Spring Security 功能强大,但实际工作时可能不需要那么复杂的东西,使用小而简单的Shiro就足够了。
Shiro不仅可以用在JavaSE环境,也可以用在JavaEE环境。它可以帮助我们完成:认证、授权、加密、会话管理、与web集成、缓存等。
Apache Shiro 框架

Authentication--认证 Authorization--授权 SessionManagement--会话管理,会话可以是Java SE环境,也可以是Java EE环境;可以实现分布式的会话管理
Crytography--加密密码 web support--web支持 caching--缓存 remember me--记住我 Testing--提供测试支持
Concurrency--shiro支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能把权限自动传播过去 Run As--允许一个用户假装为另一个用户(如果他们允许)的身份进行访问
Apache Shiro 概念
shiro架构有三个主要概念:subject、securityManager、realms

Subject,主体(user),可以是用户也可以是程序、爬虫。
securityManager 安全管理器,它是shiro的核心,有点类似于springmvc的DispatcherServlet。它管理着所有Subject,并负责与其他组件(认证器、授权器、缓存控制器)交互。securityManager 不做具体的事情,具体的事情由认证器、授权器、缓存控制器来做,securityManager 调用认证器、授权器、缓存控制器来做具体的事情。
realm,可以有一个或多个,安全实体数据源,即用于获取安全实体的。比如执行认证和授权(访问控制)时,shiro会从应用配置的realms中查找相当的比对数据,以确认用户是否合法。可以是jdbc实现,也可以是LDAP实现,或者内存实现等等,由用户提供。因为shiro不知道用户/权限存储在哪以及使用何种格式存储,所以我们一般在应用中都需要实现自己的realm。
其它概念
Principal,身份信息(username),具有唯一性,如用户名、手机号、邮箱地址等,一个用户可以有多个身份信息,但必须有一个主身份信息。
credential,凭证信息(password),如密码、证书等。
Apache Shiro 结构

Subject --> Security Manager --> Authenticator/Authorizer/Session Manager/Cache Manager --> realm(JDBC、LDAP)
SessionDAO --> DAO大家都用过,数据访问对象,用于会话的CRUD,比如我们想把Session保存到数据库,那么可以实现自己的SessionDAO,通过如JDBC写到数据库;比如想把Session放到redis中,可以实现自己的redis SessionDAO;另外SessionDAO中可以使用Cache进行缓存,以提高性能
frame shiro 概述的更多相关文章
- frame shiro 授权及原理简述
shiro 授权模式 shiro采用的是rbac授权模式rbac,基于角色的权限管理,谁扮演什么角色,被允许做什么事情. shiro 授权流程 shiro 授权方式 1.编程式 通过写if/else授 ...
- frame shiro 认证示例及原理简述
shiro 认证流程 1.创建一个 javaSE 的maven项目(quickstart),并添加依赖 <dependency> <groupId>junit</grou ...
- Shiro——概述
Apache Shiro 是 Java 的一个安全(权限)框架. Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE 环境,也可以用在 JavaEE 环境. Shiro 可以完成 ...
- SSM项目实战 之 Shiro
目录 Shiro 概述 shiro核心概念 核心类 整体类图 主要概念 Shiro架构 认证 什么是认证 关键对象 使用ini完成认证 认证流程 自定义realm 散列密码 授权 什么是授权 使用in ...
- (2018干货系列一)最新Java学习路线整合
怎么学Java Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承.指针等概念,因此Java语言具有功能强大和简单易用两个特征. 话不多说,直接上干货: ...
- springboot+mybatis+maven角色权限框架
发布时间:2018-10-24 技术:springboot,mybatis,maven,shiro 概述 Springboot作为基础框架,使用mybatis作为持久层框架 使用官方推荐的th ...
- Apache Shiro系列之五,概述 —— 配置
Shiro设计的初衷就是可以运行于任何环境:无论是简单的命令行应用程序还是复杂的企业集群应用.由于运行环境的多样性,所以有多种配置机制可用于配置,本节我们将介绍Shiro内核支持的这几种配置机制. ...
- Apache Shiro系列四,概述 —— Shiro的架构
Shiro的设计目标就是让应用程序的安全管理更简单.更直观. 软件系统一般是基于用户故事来做设计.也就是我们会基于一个客户如何与这个软件系统交互来设计用户界面和服务接口.比如,你可能会说:“如 ...
- Apache Shiro系列三,概述 —— 10分钟入门
一.介绍 看完这个10分钟入门之后,你就知道如何在你的应用程序中引入和使用Shiro.以后你再在自己的应用程序中使用Shiro,也应该可以在10分钟内搞定. 二.概述 关于Shiro的废话就不多说了 ...
随机推荐
- css之px自动转rem—sublime 插件CSSREM
CSSREM CSSREM 是一个CSS的 px 值转 rem 值的Sublime Text3自动完成插件.先来看看插件的效果: 一个CSS的px值转rem值的Sublime Text 3自动完成插件 ...
- oauth2.0实现sso单点登录的方式和相关代码
SSO介绍 什么是SSO 百科:SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他 ...
- hibernate的配置文件,使用XML方式
<?xml version="1.0" encoding="UTF-8"?> <!-- 标准的XML文件的起始行,version='1.0'表 ...
- lower类的accessCode解读
/** Access codes for dereferencing(解引用), assignment, * and pre/post increment/decrement. * Access co ...
- docker容器网络通信原理分析(转)
概述 自从docker容器出现以来,容器的网络通信就一直是大家关注的焦点,也是生产环境的迫切需求.而容器的网络通信又可以分为两大方面:单主机容器上的相互通信和跨主机的容器相互通信.而本文将分别针对这两 ...
- Angular中的$q的形象解释及深入用法
作者:寸志链接:https://zhuanlan.zhihu.com/p/19622332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 早上,老爸说:“儿子,天气如何 ...
- ZOJ 1203 Swordfish(Prim算法求解MST)
题目: There exists a world within our world A world beneath what we call cyberspace. A world protected ...
- split函数和merge函数
split函数的主要功能是把一个彩色图像分割成3个通道,方便进一步的图像处理,具体说明如下: split Divides a multi-channel array into several sing ...
- 快速安装.net 4.0
1.打开运行输入 cmd 2.输入 cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 3.输入 aspnet_regiis.exe -i
- C学习笔记(1)-结构体、预处理与多文件结构程序设计
一.结构体的定义与使用 #include <stdio.h> //定义结构体(类似模板) typedef struct { char name[50]; int age; char add ...