大白话讲shiro (一)(前言)

什么是权限:
权限是根据系统设置的安全策略或者安全规则,用户只能访问到自己被授权的资源,
大白话说就是特定的角色访问对应的资源。
一般系统中权限分为:
访问权限:不同的角色登录系统后能操作的模块不一样,管理员有查看日志模块的权限,普通用户就没有。
数据权限:不用角色查看的的数据不一样,管理员能看到所有用户的信息,普通用户只能看到关于自己的信息。

认证:
什么是认证呢?认证就像我们的身份证,证明自己的身份,在系统中账号密码就是对用户的认证,登录系统输入的账号密码和系统中的存储的账号密码对比,判断用户能不能登录到系统中。一般有密码登录,手机短信登录证,三方授权登录等方式认证。

认证流程

在这里插入图片描述

认证的关键对象:
Subject:主体:访问系统的用户,主体可以是用户、程序等,进行认证的都称为主体。
Principal:身份信息是主体(subject)进行身份认证的标识,标识必须具有唯一性,如用户名、手机号、邮箱等,一个主体可以有多个身份,但是必须有一个主身份。
Credential:凭证信息:是只有主体自己知道的安全信息,如密码、证书等。

授权:
什么是授权?授权就是系统让你能看到什么,你就只能看到什么。当去访问某些资源的时候,系统会校验你是否有权限访问。
授权需要理解的四个对象:
用户对象user:当前操作的用户、程序。
资源对象resource:当前被访问的对象。
角色对象role:一组权限操作许可权的集合。
权限对象permission:权限操作许可权。
在这里插入图片描述

Shiro简介
什么是shiro?
Shiro是Apache旗下的一个开源框架,它将软件系统的安全认证相关功能抽取出来,实现用户身份认证,权限授权、加密、会话管理等功能,组成一个通用的安全认证框架。
简单说一般在java在登录上用,再加上权限的管理。

Shiro的特点
Shiro是一个强大而灵活的开源安全框架,能够非常清晰的处理认证、授权、管理会话以及密码加密。如下:
1.易于理解的java security api
2.简单的身份认证(登录),支持多种数据源
3.对角色的简单签权(访问控制),也支持细粒度的鉴权
4.支持一级缓存,以提升应用程序的性能。
5.内置的基于POJO企业会话管理,适用于Web以及非Web的环境。
6.异构客户端会话访问。
7.非常简单的加密API
8.不跟任何框架或者容器捆绑,可以独立运行

Shiro的框架图

在这里插入图片描述

Subject:subject主体,外部应用于subject进行交互,subject将用户作为当前操作的主体,这个主体:可以是一个通过浏览器请求的用户,也可能是一个运行的程序。Subject在shiro中是一个接口,接口中定义了很多认证授权的方法,外部程序通过subject进行认证授权,而subject是通过securityManager安全管理器进行认证授权。

SecurityManager 权限管理器,shiro的核心,负责对所有的subject进行安全管理。
通过Authenticator进行认证;
通过Authorizer进行授权;
通过SessionManager进行会话管理
SecurityManager是一个接口,继承Authenticator、Authorizer、SessionManager三个接口

Realm(数据库读取+认证功能+授权功能实现)
Realm领域,相当于datasource数据源,securityManager进行安全认证需要通过realm获取用户权限数据,它有自己的一套认证授权校验的相关代码。

SessionManager:shiro框架定义了一套会话管理,不依赖web容器的session,所以shiro可以使用在非web应用上,也可以将分布式应用的会话集中在一点管理,此特性可使它实现单点登录。

SessionDao:可以通过jdbc将会话存储到数据库,也可以把session存储到缓存服务器。

cacheManager:缓存管理,将用户权限数据存储在缓存,这样可以提高性能。

Cryptography:密码管理,shiro提供了一套加密/解密的组件,比如常用的散列、加/解密等功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕孑晨

请大家多多支持,后续不断更新

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值