shiro课堂笔记(权限框架)重点.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
shiro第一天 基于url权限管理 shiro基础 课程目标: 1、了解基于资源的权限管理方式 2、掌握权限数据模型 3、掌握基于url的权限管理(不使用shiro实现权限管理) 4、shiro实现用户认证 5、shiro实现用户授权 6、shiro与企业web项目整合开发的方法 课程安排 整个课程是系统架构设计相关的课程。 第一天:基于url权限管理 shiro基础 原理知识:对权限管理的理解 什么是权限管理 用户认证 用户授权 权限管理的解决方案 基于url的权限管理开发实现(重点) shiro基础: shiro架构(重点) shiro进行用户认证的方法(重点) shiro进行用户授权的方法(重点) 第二天:shiro应用 shiro与企业web项目整合开发的方法 权限管理原理知识 什么是权限管理 只要有用户参与的系统一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者 HYPERLINK /view/160028.htm \t _blank 安全策略控制用户可以访问而且只能访问自己被授权的资源。 权限管理包括用户认证和授权两部分。 用户认证 概念 用户认证,用户去访问系统,系统要验证用户身份的合法性。最常用的用户身份验证的方法:1、用户名密码方式、2、指纹打卡机、3、基于证书验证方法。。系统验证用户身份合法,用户方可访问系统的资源。 用户认证流程 关键对象 subject:主体,理解为用户,可能是程序,都要去访问系统的资源,系统需要对subject进行身份认证。 principal:身份信息,通常是唯一的,一个主体还有多个身份信息,但是都有一个主身份信息(primary principal) credential:凭证信息,可以是密码 、证书、指纹。 总结:主体在进行身份认证时需要提供身份信息和凭证信息。 用户授权 概念 用户授权,简单理解为访问控制,在用户认证通过后,系统对用户访问资源进行控制,用户具有资源的访问权限方可访问。 授权流程 关键对象 授权的过程理解为:who对what(which)进行how操作。 who:主体即subject,subject在认证通过后系统进行访问控制。 what(which):资源(Resource),subject必须具备资源的访问权限才可访问该 资源。资源比如:系统用户列表页面、商品修改菜单、商品id为001的商品信息。 资源分为资源类型和资源实例: 系统的用户信息就是资源类型,相当于java类。 系统中id为001的用户就是资源实例,相当于new的java对象。 how:权限/许可(permission) ,针对资源的权限或许可,subject具有permission访问资源,如何访问/操作需要定义permission,权限比如:用户添加、用户修改、商品删除。 权限模型 主体(账号、密码) 资源(资源名称、访问地址) 权限(权限名称、资源id) 角色(角色名称) 角色和权限关系(角色id、权限id) 主体和角色关系(主体id、角色id) 如下图: 通常企业开发中将资源和权限表合并为一张权限表,如下: 资源(资源名称、访问地址) 权限(权限名称、资源id) 合并为: 权限(权限名称、资源名称、资源访问地址) 上图常被称为权限管理的通用模型,不过企业在开发中根据系统自身的特点还会对上图进行修改,但是用户、角色、权限、用户角色关系、角色权限关系是需要去理解的。 分配权限 用户需要分配相应的权限才可访问相应的资源。权限是对于资源的操作许可。 通常给用户分配资源权限需要将权限信息持久化,比如存储在关系数据库中。 把用户信息、权限管理、用户分配的权限信息写到数据库(权限数据模型) 权限控制(授权核心) 基于角色的访问控制 RBAC(role based access control),基于角色的访问控制。 比如: 系统角色包括 :部门经理、总经理。。(角色针对用户来划分) 系统代码中实现: //如果该user是部门经理则可以访问if中的代码 if(user.hasRole(部门经理)){ //系统资源内容 //用户报表查看 } 问题: 角色针对人划分的,人作为用户在系统中属于活动内容,如果该 角色可以访问的资源出现变更,需要修改你的代码了,比如:需要变更为部门经理和总经理都可以进行用户报表查看,代码改为: if(user.hasRole(部门经理) || user.hasRole(总经理) ){ //系统资源内容 //用户报表查看 } 基于角色的访问控制是不利于系统维护(可扩展性不强)。 基于资源的访问控制 RBAC(Resource based access control),基于资源的访问控制。 资源在系统中是不变的,

文档评论(0)

tt435678 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档