Java安全框架——Apache Shiro(二)

81 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 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安全管理器进行认证授权