21_shiro总结

关于shiro总结

  • 1

一般来说,实现权限控制至少要五张表:用户 --- 角色 --- 权限 ==> 三张实体表两张中间表,一共建立 5 张数据表,
用户: 系统登录用户 User
权限: 描述权限信息 (粗粒度权限控制,可能在权限表描述访问资源 URL 信息)
Permission角色: 方便用户进行授权, 角色就是权限的集合 Role

  • 2

Apache Shiro (更轻量, 使用更简单, 并不完全依赖 spring,可以独立使用 )
登录流程: 应用程序 --- Subject --- SecurityManager --- Realm --- 安全数据


image.png

①ApplicationCode 用户编写代码
②Subject 就是 shiro 管理的用户
③SecurityManager 安全管理器,是 shiro 权限控制核心对象, 在编程时,只需要操作Subject 方法, 底层调用 SecurityManager 方法,无需直接编程操作 SecurityManager
④Realm 应用程序和安全数据之间连接器 ,应用程序 进行权限控制读取安全数据(数据 表、文件、网路 … ),通过 Realm 对象完成

  • Shiro 进行权限控制

四种主要方式 :
1、 在程序中 通过 Subject 编程方式进行权限控制
2、 配置 Filter 实现 URL 级别粗粒度权限控制
3、 配置代理,基于注解实现细粒度权限控制
4、 在页面中使用 shiro 自定义标签实现 页面显示权限控制

Apache Shiro 权限控制(小结)

第一种:URL 级别粗粒度权限控制
配置 web.xml 的 shiroFilter 拦截 /*
在 spring 的 applicationContext.xml 配置文件中配置同名 bean,配置 filterChainDefinitions 拦截控制规则
xxx.html
= anon (未登录可以访问)
xxx.html* =authc (必须登录才能访问 )
xxx.html* = perms[权限] (需要特定权限才能访问)
xxx.html* = roles[角色] (需要特定角色才能访问 )

第二种: 方法级别细粒度权限控制
在 spring 的 applicationContext*.xml 配置 spring aop 对 spring 管理 bean 对象开启 shiro
注解支持
@RequiresPermissions(权限) 需要特定权限才能访问
@RequiresRoles(角色) 需要特定角色才能访问
@RequiresAuthentication 需要认证才能访问

第三种:通过 shiro 自定义标签,实现页面元素显示控制
<shiro:authenticated> 登录后才能访问
<shiro:hasPermission name="abc"> 需要特定权限才能访问
<shiro:hasRole name="abc"> 需要特定角色才能访问

第四种:在程序中通过代码 判断用户是否具有指定权限( 不太常用 ,有代码侵入 )


image.png

补充: 权限表达式 “:”代表子权限
权限 courier 包含 courier:add、courier:list、courier:* ,如果用户具有父权限,操作 所有子权限功能
权限 courier:list 包含 courier:list:10

补充,另一个安全框架spring_security,见22

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 说明:本文很多观点和内容来自互联网以及各种资料,如果侵犯了您的权益,请及时联系我,我会删除相关内容。 权限管理 基...
    寇寇寇先森阅读 7,763评论 8 76
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,695评论 19 139
  • title: 初识Shirotags: shirocategories: shiro 若图片无法显示,请前往我的博...
    codingXiaxw阅读 630评论 1 0
  • 前言 本文主要讲解的知识点有以下: 权限管理的基础知识模型粗粒度和细粒度的概念 回顾URL拦截的实现 Shiro的...
    Java3y阅读 2,571评论 0 62
  • 彪悍如我,竟然败在了一只脚上。 拥挤的人群,老公告诉我:别怕要打麻药的。等医生拿起浸泡过液氨的棉签没和我商量地直接...
    花房姑娘1987阅读 1,424评论 0 0

友情链接更多精彩内容