携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第26天,点击查看活动详情
-
用户对象user:当前操作的用户、程序。
-
资源对象resource:当前被访问的对象
-
角色对象role :一组 "权限操作许可权" 的集合。
-
权限对象permission:权限操作许可权
关键对象
授权可简单理解为who对what进行How操作
Who: 主体(Subject),可以是一个用户、也可以是一个程序
What: 资源(Resource),如系统菜单、页面、按钮、方法、系统商品信息等。
-
访问类型:商品菜单,订单菜单、分销商菜单
-
数据类型:我的商品,我的订单,我的评价
How: 权限/许可(Permission)
-
我的商品(资源)===>访问我的商品(权限许可)
-
分销商菜单(资源)===》访问分销商列表(权限许可)
第二章 Shiro概述
1、Shiro简介
【1】什么是Shiro?
- Shiro是apache旗下一个开源框架,它将软件系统的安全认证相关的功能抽取出来,实现用户身份认证,权限授权、加密、会话管理等功能,组成了一个通用的安全认证框架。
【2】Shiro 的特点
- Shiro 是一个强大而灵活的开源安全框架,能够非常清晰的处理认证、授权、管理会话以及密码加密。如下是它所具有的特点:
· 易于理解的 Java Security API;
· 简单的身份认证(登录),支持多种数据源(LDAP,JDBC 等);
· 对角色的简单的签权(访问控制),也支持细粒度的鉴权;
· 支持一级缓存,以提升应用程序的性能;
· 内置的基于 POJO 企业会话管理,适用于 Web 以及非 Web 的环境;
· 异构客户端会话访问;
· 非常简单的加密 API;
· 不跟任何的框架或者容器捆绑,可以独立运行。
2、核心组件
-
Subject
properties Subject主体,外部应用与subject进行交互,subject将用户作为当前操作的主体,这个主体:可以是一个通过浏览器请求的用户,也可能是一个运行的程序。Subject在shiro中是一个接口,接口中定义了很多认证授相关的方法,外部程序通过subject进行认证授,而subject是通过SecurityManager安全管理器进行认证授权