\day01_shiro\0323\10realm支持散列.avi;
\day01_shiro\0323\1权限管理原理.avi;
\day01_shiro\0323\2权限管理解决方案.avi;
\day01_shiro\0323\3基于url拦截-开发框架搭建.avi;
\day01_shiro\0323\4基于url拦截-用户认证实现.avi;
\day01_shiro\0323\5基于url拦截-用户授权实现.avi;
\day01_shiro\0323\6shiro的介绍.avi;
\day01_shiro\0323\7shiro认证入门程序.avi;
\day01_shiro\0323\8shiro认证流程.avi;
\day01_shiro\0323\9自定义realm实现认证.avi;
\day01_shiro\0323\源代码\permission1110\WebRoot\images\px;
\day01_shiro\案例\permission(基于url授权工程)\WebRoot\images\px;
\day02_shiro第二天\0325\10shiro整合开发-验证码实现.avi;
\day02_shiro第二天\0325\11shiro整合开发-记住我.avi;
\day02_shiro第二天\0325\1shiro授权入门程序.avi;
\day02_shiro第二天\0325\2自定义realm进行授权.avi;
\day02_shiro第二天\0325\3shiro整合开发-applicationContext-shiro.avi;
\day02_shiro第二天\0325\4shiro整合开发-登陆和退出.avi;
\day02_shiro第二天\0325\5shiro整合开发-realm查询完整认证在页面展示.avi;
\day02_shiro第二天\0325\6shiro整合开发-realm授权.avi;
\day02_shiro第二天\0325\7shiro整合开发-认证连接数据库.avi;
\day02_shiro第二天\0325\8shiro整合开发-授权连接数据库.avi;
\day02_shiro第二天\0325\9shiro整合开发-缓存.avi;
\day02_shiro第二天\0325\源代码\permission1110\WebRoot\images\px;
\day02_shiro第二天\0325\源代码\permission_shiro1110\WebRoot\images\px;

《shiro\day01_shiro\0323\1权限管理原理.avi》

  

视频中39分 时 提到权限和资源是多对一,不是很理解。

====================

1.1 什么是权限管理

基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源。

权限管理包括用户身份认证和授权两部分,简称认证授权。对于需要访问控制的资源用户首先经过身份认证,认证通过后用户具有该资源的访问权限方可访问。

1.2 用户身份认证

1.2.1 概念

身份认证,就是判断一个用户是否为合法用户的处理过程。最常用的简单身份认证方式是系统通过核对用户输入的用户名和口令,看其是否与系统中存储的该用户的用户名和口令一致,来判断用户身份是否正确。对于采用指纹等系统,则出示指纹;对于硬件Key等刷卡系统,则需要刷卡。

1.2.2 用户名密码身份认证流程

  

1.2.3 关键对象

上边的流程图中需要理解以下关键对象:

Subject:主体

访问系统的用户,主体可以是用户、程序等,进行认证的都称为主体;

Principal:身份信息

是主体(subject)进行身份认证的标识,标识必须具有唯一性,如用户名、手机号、邮箱地址等,一个主体可以有多个身份,但是必须有一个主身份(Primary Principal)。

credential:凭证信息

是只有主体自己知道的安全信息,如密码、证书等。

1.3 授权

1.3.1 概念

授权,即访问控制,控制谁能访问哪些资源。主体进行身份认证后需要分配权限方可访问系统的资源,对于某些资源没有权限是无法访问的。

1.3.2 授权流程

下图中橙色为授权流程。

  

1.3.3 关键对象

授权可简单理解为who对what(which)进行How操作:

n Who,即主体(Subject),主体需要访问系统中的资源。

n What,即资源(Resource),如系统菜单、页面、按钮、类方法、系统商品信息等。资源包括资源类型和资源实例,比如商品信息为资源类型,

  类型为t01的商品为资源实例,编号为001的商品信息也属于资源实例。

n How,权限/许可(Permission),规定了主体对资源的操作许可,权限离开资源没有意义,如用户查询权限、用户添加权限、某个类方法

  的调用权限、编号为001用户的修改权限等,通过权限可知主体对哪些资源都有哪些操作许可。

权限分为粗颗粒和细颗粒,粗颗粒权限是指对资源类型的权限,细颗粒权限是对资源实例的权限。

主体、资源、权限关系如下图:

    

权限管理解决方案

1.1 粗颗粒度和细颗粒度

1.1.1 什么是粗颗粒度和细颗粒度

对资源类型的管理称为粗颗粒度权限管理,即只控制到菜单、按钮、方法,粗粒度的例子比如:用户具有用户管理的权限,具有导出订单明细的权限。

对资源实例的控制称为细颗粒度权限管理,即控制到数据级别的权限,比如:用户只允许修改本部门的员工信息,用户只允许导出自己创建的订单明细。

1.1.2 如何实现粗颗粒度和细颗粒度

对于粗颗粒度的权限管理可以很容易做系统架构级别的功能,即系统功能操作使用统一的粗颗粒度的权限管理。

对于细颗粒度的权限管理不建议做成系统架构级别的功能,因为对数据级别的控制是系统的业务需求,随着业务需求的变更业务功能变化的可能性很大,

建议对数据级别的权限控制在业务层个性化开发,比如:用户只允许修改自己创建的商品信息可以在service接口添加校验实现,

service接口需要传入当前操作人的标识,与商品信息创建人标识对比,不一致则不允许修改商品信息。

建议细粒度权限管理在业务层去控制。

比如:部门经理只查询本部门员工信息,在service接口提供一个部门id的参数,controller中根据当前用户的信息得到该 用户属于哪个部门,

  调用service时将部门id传入service,实现该用户只查询本部门的员工。

1.2 基于url拦截

基于url拦截是企业中常用的权限管理方法,实现思路是:将系统操作的每个url配置在权限表中,将权限对应到角色,将角色分配给用户,

用户访问系统功能通过Filter进行过虑,过虑器获取到用户访问的url,只要访问的url是用户分配角色中的url则放行继续访问。

如下图:

    

1.3 使用权限管理框架

对于权限管理基本上每个系统都有,使用权限管理框架完成权限管理功能的开发可以节省系统开发时间,并且权限管理框架提供了完善的认证

和授权功能有利于系统扩展维护,但是学习权限管理框架是需要成本的,所以选择一款简单高效的权限管理框架显得非常重要。

《shiro》视频目录---1、权限管理-shiro的更多相关文章

  1. Linux - 对文件和目录的权限管理

    对文件的权限管理 ls -l,也可以用 ll 命令查看文件权限的相关信息 第一列“-rw-r--r--.”为权限信息,权限信息的最后一个点表示为在安全环境下创建的 第二列“1”为硬链接数,第三列“ro ...

  2. 【基于url权限管理 shiro(一)】--基础

    只要有用户参与的系统一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源.权限管理包括用户认证和授权两部分.   用户认证 1.概 ...

  3. 7. 整合shiro,搭建粗粒度权限管理

    shiro是一个易用的权限管理框架,只需提供一个Realm即可在项目中使用,本文就将结合上一篇中搭建的权限模块.角色模块和用户模块来搭建一个粗粒度的权限管理系统,具体如下:1. 添加shiro依赖和与 ...

  4. spring boot(十四)shiro登录认证与权限管理

    这篇文章我们来学习如何使用Spring Boot集成Apache Shiro.安全应该是互联网公司的一道生命线,几乎任何的公司都会涉及到这方面的需求.在Java领域一般有Spring Security ...

  5. Shrio00 Shiro认证登录、权限管理环境搭建

    基础环境准备: JDK -> java version "1.8.0_101" MAVEN -> Apache Maven 3.5.0 1 导入依赖 mysql驱动 m ...

  6. 权限管理——shiro

    1.shiro整合spring a.导入依赖 <properties> <shiro.version>1.2.4</shiro.version> </prop ...

  7. Shiro基础学习(一)—权限管理

    一.基本概念 1.权限管理      只要有用户参与的系统一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源.     权限管理 ...

  8. 【shiro】(1)---了解权限管理

    了解权限管理 一.概念 1.什么是权限管理 只要有用户参与的系统一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源. 权限管理包 ...

  9. linux文件及目录的权限管理

    一.文件的权限 1.文件权限的查看 命令:ls -l 可以使用ll命令代替 ls -l 2.ls -l 所包含的信息 (1)权限信息 (-rw-r--r-- ) 一共有10位 a.第一位:表示文件信息 ...

随机推荐

  1. Linux/Unix系统QA

    Q1:Ext3的三种日志记录方式 1 data=writeback 方式data=writeback方式下,ext3根本不执行任何形式的数据日志记录,提供给您的是和在XFS,JFS和 ReiserFS ...

  2. c3p0配置Spring

    jdbc.properties jdbcUrl=jdbc:mysql://localhost:3306/myoa?useUnicode=true&characterEncoding=utf-8 ...

  3. 关于串session

    关于session: 最近在用IE浏览器调试不同用户所拥有的权限功能,出现了串session.串session,主要的流程结构如下: 解决方法: 在IE快捷方式上点击鼠标右键>属性>快捷方 ...

  4. Java引用类型传递整理

    引用数据类型(类) 10.1引用数据类型分类 可以把类的类型为两种: Java为我们提供好的类,如Scanner类,Random类等,这些已存在的类中包含了很多的方法与属性,可供我们使用. 我们自己创 ...

  5. Kubernetes之POD

    什么是Pod Pod是可以创建和管理Kubernetes计算的最小可部署单元.一个Pod代表着集群中运行的一个进程. Pod就像是豌豆荚一样,它由一个或者多个容器组成(例如Docker容器),它们共享 ...

  6. maven的安装与基本使用

    一.什么是maven,有什么用? Maven是一个项目构建和管理的工具,其主要服务于基于java平台的项目构建.依赖管理和项目信息管理.它包含了一个项目对象模型 (Project Object Mod ...

  7. scrapy中的xpath用法和css的用法

    css 不包含那个类 response.css(".list-left dd:not(.page)") 获取属性和文本 img.css("a::text").e ...

  8. 各种loading加载中gif图标

    点击这里打包下载更多样式

  9. 【1】【leetcode-127】单词接龙word-ladder

    (不会,经典广度优先搜索) 给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度.转换需遵循如下规则: 每次转换只能改 ...

  10. HDU 1026(迷宫 BFS+打印)

    题意是要穿过一个迷宫并且将每一步打印出来. 用宽搜的方法找到路径,在 vis 中存一下方向,只是这题被看到的一种不太对的运算符重载坑了很久...... 代码如下: #include <bits/ ...