shiro初步 shiro认证

shiro安全框架初识--shiro简介、认证与授权 Apache Shiro 是一个强大易用的 Java 安全框架,提供了认证、授权、加密和session会话管理等功能,对于任何一个应用程序,Shiro 都可以提供全面的安全管理服务。并且相对于其他安全框架spring security,Shiro 要简单的多.Shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境。Shiro可以帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存等。... 阅读详情

什么是shiro

shiro是apache的一个开源框架,是一个权限管理的框架,实现 用户认证、用户授权。

spring中有spring security (原名Acegi),是一个权限框架,它和spring依赖过于紧密,没有shiro使用简单。
shiro不依赖于spring,shiro不仅可以实现 web应用的权限管理,还可以实现c/s系统,分布式系统权限管理,shiro属于轻量框架,越来越多企业项目开始使用shiro。

使用shiro实现系统 的权限管理,有效提高开发效率,从而降低开发成本。

Jar包

shrio基础jar包

shiro架构

这里写图片描述

subject:主体,可以是用户也可以是程序,主体要访问系统,系统需要对主体进行认证、授权。

securityManager:安全管理器,主体进行认证和授权都 是通过securityManager进行。

authenticator:认证器,主体进行认证最终通过authenticator进行的。

authorizer:授权器,主体进行授权最终通过authorizer进行的。

sessionManager:web应用中一般是用web容器对session进行管理,shiro也提供一套session管理的方式。
SessionDao: 通过SessionDao管理session数据,针对个性化的session数据存储需要使用sessionDao。

cache Manager:缓存管理器,主要对session和授权数据进行缓存,比如将授权数据通过cacheManager进行缓存管理,和ehcache整合对缓存数据进行管理。

realm:域,领域,相当于数据源,通过realm存取认证、授权相关数据。

注意:在realm中存储授权和认证的逻辑。

cryptography:密码管理,提供了一套加密/解密的组件,方便开发。比如提供常用的散列、加/解密等功能。
比如 md5散列算法。

shiro认证流程

这里写图片描述

shiro入门程序工程

这里写图片描述

github下载shiro入门程序

执行流程

1、通过ini配置文件创建securityManager
2、调用subject.login方法主体提交认证,提交的token
3、securityManager进行认证,securityManager最终由ModularRealmAuthenticator进行认证。
4、ModularRealmAuthenticator调用IniRealm(给realm传入token) 去ini配置文件中查询用户信息
5、IniRealm根据输入的token(UsernamePasswordToken)从 shiro-first.ini查询用户信息,根据账号查询用户信息(账号和密码)
如果查询到用户信息,就给ModularRealmAuthenticator返回用户信息(账号和密码)
如果查询不到,就给ModularRealmAuthenticator返回null
6、ModularRealmAuthenticator接收IniRealm返回Authentication认证信息
如果返回的认证信息是null,ModularRealmAuthenticator抛出异常(org.apache.shiro.authc.UnknownAccountException)
如果返回的认证信息不是null(说明inirealm找到了用户),对IniRealm返回用户密码 (在ini文件中存在)和 token中的密码 进行对比,如果不一致抛出异常(org.apache.shiro.authc.IncorrectCredentialsException)

小结
ModularRealmAuthenticator作用进行认证,需要调用realm查询用户信息(在数据库中存在用户信息)
ModularRealmAuthenticator进行密码对比(认证过程)。

realm:需要根据token中的身份信息去查询数据库(入门程序使用ini配置文件),如果查到用户返回认证信息,如果查询不到返回null。

自定义realm

realm接口

这里写图片描述

需要在shiro-realm.ini配置realm注入到securityManager中

[main]

#自定义realm
customRealm=com.hust.shiro.realm.CustomRealm
#将realm设置到SecurityManager,相当于注入
securityManager.realm=$customRealm

散列算法 加盐

通常需要对密码 进行散列,常用的有md5、sha,

对md5密码,如果知道散列后的值可以通过穷举算法,得到md5密码对应的明文。
建议对md5进行散列时加salt(盐),进行加密相当 于对原始密码+盐进行散列。
正常使用时散列方法:
在程序中对原始密码+盐进行散列,将散列值存储到数据库中,并且还要将盐也要存储在数据库中。

如果进行密码对比时,使用相同 方法,将原始密码+盐进行散列,进行比对。

在realm中配置凭证匹配器

[main]
#定义凭证匹配器
credentialsMatcher=org.apache.shiro.authc.credential.HashedCredentialsMatcher
#散列算法
credentialsMatcher.hashAlgorithmName=md5
#散列次数
credentialsMatcher.hashIterations=1

#自定义realm
customRealm=com.hust.shiro.realm.CustomRealmMD5
customRealm.credentialsMatcher=$credentialsMatcher
#将realm设置到SecurityManager,相当于注入
securityManager.realms=$customRealm
13.shiro之ssm版本 Shiro 1 初布介绍 1 shiro有什么特点? Apache Shiro 是 Java 的一个安全(权限)框架。 Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE 环境,也可以用在 JavaEE 环境。 Shiro 可以完成:认证、授权、加密、会话管理、与Web 集成、缓存 等。 下载 2 功能简介 Authentication:身份认证/登录,验证用户是不是拥有相应的身份; Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用 户 阅读详情

相关推荐

SSM整合Shiro(一)

SSM整合Shiro基础版

过期啤酒的博客 1333

Shiro学习笔记(二)UsernamePasswordToken源码简单解析

在shrio中,AuthenticationToken用于存储前端传来的登录信息,通俗来说就是用户名及密码等。而在这之中比较常用的就是UsernamePasswordToken。为了了解shrio的验证过程有必要先了解与验证相关的主要的几个类。首先看下shrio对UsernamePasswordToken的描述: /** * <p>A simple username/passwo...

zch-兴趣使然-blog 3万+

Android音频子系统分析-car_audio_configuration.xml

先附上一个例子,再逐一解释。概括来说,该文件描述了车里有哪些区域,每个区域划分了多少组,每个组包含了哪些设备,每个设备接收哪些类型的音频流。

不定时记录分享一些有用没用的东西 989

Shiro 之 UsernamePasswordToken

一.UsernamePasswordToken UsernamePasswordToken 是用来存储用户和密码的 private String username; //用户 private char\[\] password; //密码 private boolean rememberMe; //记住密码 private String host; //主机

m0_67392661的博客 2992

银河麒麟V10ARM架构服务器离线安装docker\nacos【附安装包】

本文分享了在银河麒麟ARM64操作系统上安装Docker和Nacos的完整过程。首先提供了Docker的自动化安装脚本,包含服务配置、存储路径设置等关键步骤,并给出了常用维护命令。接着详细介绍了通过Docker-compose部署Nacos的方法,包括镜像导入、配置文件修改、鉴权设置等注意事项,特别强调了密钥长度必须超过32个字符的要求。文章还提供了Nacos初次登录的注意事项,并预告了后续可能推出的Redis、Nginx等安装教程。所有配置文件和脚本均可直接下载使用,适合内网环境下国产操作系统的部署

weixin_39054697的博客 2344

Yolov26 在 Rk3588 上的 Rknn Onnx 部署实践(模型转换)

本文详细介绍了将YOLOv26 ONNX模型转换为RKNN模型的过程,适用于RK3588平台。主要内容包括:1)量化数据集的创建,通过随机抽取最多400张JPG图片生成校准数据集;2)ONNX转RKNN的完整脚本,支持多种量化方式和平台适配;3)模型转换的参考调用方式;4)模型结构对比展示。文章还提供了注意事项,强调量化数据集图片尺寸、mean/std值需与实际推理一致,并给出精度优化建议。该转换流程为YOLOv26模型在RK3588上的高效部署提供了完整解决方案。

qq_64366203的博客 1126

shiro相关参数解释

UsernamePasswordToken 在shrio中,AuthenticationToken用于存储前端传来的登录信息,通俗来说就是用户名及密码等。而在这之中比较常用的就是UsernamePasswordToken。 UsernamePasswordToken是一个简单的包含username及password即用户名及密码的登录验证用token,这个类同时继承了HostAuthenticationToken及RememberMeAuthenticationToken,UsernamePasswordT

qq_46199553的博客 1153

国内网络环境下Leaflet加载OpenStreetMap地图的5种替代方案(附可用瓦片地址)

本文针对国内网络环境下Leaflet加载OpenStreetMap地图的常见问题,提供了5种可用的瓦片替代方案,包括OpenStreetMap.fr HOT、OpenStreetMap.de、CartoDB、Stamen和Thunderforest,并附上详细的代码示例和选择建议,帮助开发者解决地图加载问题。

qsc901234的博客 1688

SpringBoot整合Shiro 之 用户名密码登录

SpringBoot整合Shiro 之 用户名密码登录 首先 使用Shiro 我们要大致了解清楚 什么是Shiro?它能帮我们实现什么功能? 根据官方文档介绍:Shiro 是一个功能强大且易于使用的Java安全框架,可以实现 身份验证、授权、加密和会话管理功能。 那么今天 我这里就主要 实现以下 身份验证功能,也就是用户登录啦。 1.数据库 这里提供一个简单 user表SQL CREATE TABLE `ums_user` ( `id` bigint(20) NOT NULL AUTO_INCREMEN

asdfadafd的博客 1662

RK3568平台(网络篇)WIFI模块RTL8821CU调试

RTL8821CU是瑞昱半导体推出的usb接口的wifi,下面的教程将介绍如何将RTL8821CU移植到rk3588的平台上。移植usb wifi需要修改的文件Android hal层需要修改的文件//kernel需要修改的文件kernel/arch/arm64/boot/dts/rockchip/rk3399-tve1030g.dtsi //除去板上的sdio的wifi。

weixin_49303682的博客 3904

SAP BOM批量反查代码分享

SAP BOM反查批量查询代码分享

我小时候很黑的博客 4971

shiro将session认证改成token认证_初步学习Shiro框架 第一集

1、什么是ShiroApache Shiro™ is a powerful and easy-to-use Java security framework that performs authentication, authorization, cryptography, and session management. With Shiro’s easy-to-understand AP...

weixin_39626237的博客 476

海康Visionmaster-通讯管理:ModBus 通信发送非整型 数据的方法

海康Visionmaster-通讯管理:ModBus 通信发送非整型 数据的方法

视觉人机器视觉的博客 1741

shiro框流程及简单初步认证和授权

认证的关键对象 subject :主体 访问系统的用户.主体可以是用户.程序等.进行认证的都可以称为主体 Principal:身份信息 主体进行身份认证的标识,标识必须具有唯一性,如用户名.手机号.邮箱地址等.一个主体可以有多个身份,但必须有一个主身份(primary principal) credential:凭证信息 只有主体自己知道的安全信息,如密码,证书等 步骤 1.创建安全管理器对象 2.给安全管理器设置realm 3.Security...

shorw的专栏 277

基于YOLOv8的表面裂痕等缺陷检测:深度学习与UI界面的实践

本文详细介绍了如何使用YOLOv8进行表面裂痕等缺陷检测,并结合图形用户界面展示检测结果。通过YOLOv8的强大能力,我们可以实现高效、准确的表面缺陷检测,提升工业产品的质量控制水平。未来,随着深度学习技术和数据集的不断发展,表面缺陷检测的精度和速度将不断提升,应用领域也将进一步拓展。希望本文的实践能够为深度学习在工业检测领域的应用提供一些启示。

YOLO 550

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

复习之shiro安全框架(一)——初步了解及使用shiro认证

shiro (java安全框架) Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。 三个核心组件:Subject, SecurityManager 和 Realms. Subject: 即“当前操作用户”。但是,在Shiro中,Sub...

IManiy的博客 316

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Shiro学习笔记(一):初识Shiro

目录 一、权限管理的引入 1、权限管理 2、身份认证 3、授权 二、Shiro的介绍 1、什么是Shiro 2、Shiro的核心架构 (1)Subject (2)SecurityManager (3)Authenticator (4)Authorizer (5)Realm (6)SessionManager (7)SessionDao (8)CacheManager (9)Cryptography 三、Shiro的认证 1、认证 2、S...

weixin_47382783的博客 521

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Shiro介绍(二):从简单的认证开始

继续,先来看看登录功能能简化到什么程度

SHARE & TOP 3438

Shiro入门之一 -------- Shiro权限认证与授权

https://www.cnblogs.com/rodge-run/p/6445963.html

u013897140的博客 122

shiro全面实战教程(待完善)

基本概念略 一.、Shiro中认证的关键对象 1.1shiro中认证的关键对象 Subject:主体 访问系统的用户,主体可以是用户、程序等,进行认证的均称之为主体 Principal:身份信息 是主体(subject)进行身份认证的标识,标识必须具有唯一性,如用户名、手机号、邮箱等,一个主体可以有多个身份,但是必须有一个主身份(Primary Principal)。 credential:凭证信息 是只有主体自己知道的安全信息,如密码,证书等。 1.2认证流程 1.3MD5 作用:一般用来加密或者签名

eternally_zh128@sina.com的博客 286

简单易上手- Shiro 权限框架

shiro是apache的一个开源框架,是一个权限控制器框架,在应用程序角度来观察如何使用Shiro, securityManager:安全管理器,域:Realm(与开发相关的)-> 主要负责安全数据,安全管理器:securityManager -> 管理系统中的所有用户,主体:subject -> 当前用户,认证 -> 接管了用户登录操作,授权 -> 接管管理系统资源的分配,Spring web 集成 监听器ContextLoadListener

oyang的博客 1147

初识shiro

初识shiro shiro官网 https://shiro.apache.org/ 官方文档 https://shiro.apache.org/reference.html 学习视频 https://www.bilibili.com/video/BV1uz4y197Zm shiro架构图 快速上手案例 创建个maven项目 pom.xml <dependency> <groupId>org.apache.shiro</groupId> <artif

m0_46522108的博客 233

Springboot整合Shiro之认证

  Shiro是我们常用的一个权限管理框架,我们之前已经详细的给大家介绍过了Shiro的基础知识,不太清楚的可以参考下 https://blog.youkuaiyun.com/qq_38526573/category_9284714.html 此文,本文的重点是来介绍下在SpringBoot环境下我们怎么来使用Shiro。 一、添加相关依赖 本案例中我们使用SpringDataJPA和Thymeleaf来配合...

波波烤鸭的博客 2万+

Shiro框架——shiro的认证

通过分析源码可得:自定义Realm的作用:放弃使用.ini文件,使用数据库查询上边的程序使用的是Shiro自带的IniRealm,IniRealm从ini配置文件中读取用户的信息,大部分情况下需要从系统的数据库中读取用户信息,所以需要自定义realm。1.shiro提供的Realm2.根据认证源码认证使用的是SimpleAccountRealmSimpleAccountRealm的部分源码中有两个方法一个是认证一个是授权//.......省略= null) {

2301_79438104的博客 2326
上一篇: 基于url权限管理 shiro基础
下一篇: eclipse 修改 ini文件的读取方式
杜鲁门
博客等级 码龄11年 219粉丝 316原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值