Shiro

Shiro学习——(四)Shiro+mysql进行验证 Shiro+Mysql进行授权验证   在我们的学习过程中,数据是至关重要的,而且是必不可少的一环。在Shiro的学习中,进过数据库的查询,来进行不同用户的权限限定,是必不可少的。 第一步:数据库设计 第二步:导入依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId... 阅读详情

Shiro 身份验证底层实现

依然靠数据库完成账号验证

Shiro处理密码验证

 

Shiro正常调用流程

Controller 页面请求和页面跳转,Subject.login(token)来调用Shiro验证

AuthorizingRealm的doGetAuthenticationInfo方法,来处理验证信息

在doGetAuthenticationInfo方法中,获取HttpSession,用于存储相关信息(比如用户的真名),之后在controller获取这个Session

       private Session getSession(){ 

              try{ 

                  Subject subject = SecurityUtils.getSubject(); 

                  Session session = subject.getSession(false); 

                   if (session == null){ 

                       session = subject.getSession(); 

                   } 

                   if (session != null){ 

                       return session; 

                   } 

               }catch (InvalidSessionException e){ 

                     e.printStackTrace();

               } 

               return null; 

           }

 

Shiro主过滤器 从上至下

 

/** = user 与 token.setRememberMe(true);

当着两条配合使用时,将会实现单点登录,并且关闭浏览器,下次依然可以访问资源。因为setRememberMe(true)会在浏览器生成一个cookie名rememberMe,它是用户名序列后,Base64后的加密字符串,记住登录状态

/敏感界面 = authc 配置在 /** = user 前

当退出浏览器时,敏感界面需要再次做验证。比如支付界面

 

UsernamePasswordToken.getPassword() 获得是char数组,而不是String

原因:打开源码,shiro对没有逻辑意义的密码,有一个clear()方法来清除密码。但是String是一个final对象,是没有clear()方法的,即时是空的密码,也会在内存中被记录保留。因此shiro会将用户输入的密码转为char数组。因此shiro推荐做一次MD5加密,来二次比对数据库中被MD5加密的密码

 

MD5加密流程

  1. 数据库放入MD5加密后的密文密码,记录盐值
  2. 前台输入明文密码,被token记录
  3. Token进入方法doGetAuthenticationInfo,在new SimpleAuthenticationInfo 中完成配置文件中凭证规则的加密
  4. 匹配new SimpleAuthenticationInfo 方法中user.getPassword()获得数据库的加密密码

 

Shiro 退出登录

不需要编写controller层代码,只需要编写前台的跳转界面地址,对应shiro配置文件的

/URL = logout 即可,退出登录的操作交于shrio来处理

 

进入授权doGetAuthorizationInfo方法一共有三种情况:

 

1、subject.hasRole(“admin”) 或 subject.isPermitted(“admin”):自己去调用这个是否有什么角色或者是否有什么权限的时候;

 

2、@RequiresRoles("admin") :在方法上加注解的时候;

 

3、[@shiro.hasPermission name = "admin"][/@shiro.hasPermission]:在页面上加shiro标签的时候,即进这个页面的时候扫描到有这个标签的时候

 

被URL拦截后,除去JSESSIONID

需求版本shiro-spring-1.4.0.jar

<bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">

              <!-- 去除JSESSIONID -->

              <property name="sessionIdUrlRewritingEnabled" value="false"></property>

</bean>

Shiro入门4:Shiro环境搭建【基于Maven】 在这里我使用了Maven作为项目JAR包管理,只要使用下面提供的Shiro在Apache里面的仓库就可以轻松快捷地加入Shiro框架在WEB程序中所需要的代码。 如果没有使用Maven的可以在Shiro官网下载所需要的JAR包也是可以使用的。 【核心JAR包:shiro-core-1.2.3】 阅读详情

相关推荐

Shiro反序列化漏洞(Shiro-550、Shiro-721)

0x01 Shiro介绍 Apache Shiro 是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能,Shiro框架直观、易用、同时也能提供健壮的安全性。 Apache Shiro反序列化漏洞分为两种:Shiro-550、Shiro-721 0x02 Shiro-550 反序列化漏洞 CVE-2016-4437 漏洞原理 Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的Cookie,在服务端对rememberMe的Cook

李同學AI安全 7638

【shiro】问题记录--doGetAuthorizationInfo重复执行以及关闭shiro自带的session

在shiro整合token实现续签的时候,调试发现了一个奇葩的情况,我的doGetAuthorizationInfo重复执行2次。

kevin的博客 833

BrainVision Recorder 和 BrainVision Analyzer 2.2 安装

本篇为《EEG处理》系列博客的第二篇,该系列博客主要记录EEG信号处理的学习过程中的软件安装和学习过程,方便以后查阅。本篇为BrainVision Recorder 和 BrainVision Analyzer 2.2 的安装过程。 BrainVision Recorder 和 BrainVision Analyzer 2.2 安装安装前奏Brain Vision Analyzer分析软件 安装Brain Vision Recorder记录软件 安装推荐几款个人使用的科研软件 安装前奏 Brain V

梁小憨憨的博客 5060

shiro权限验证框架

shiro权限验证框架 1.什么是Shiro?     Shiro 是一个用 Java 语言实现的框架,通过一个简单易用的 API 提供身份验证和授权。使用 Shiro,您就能够为您的应用程序提供安全性而又无需从头编写所有代码。 2.为什么要用Shiro?     shiro在大多数的企业级系统中,我们一般都是采用角色关联资源,然后对用户指定一些角色,这样用户就拥有了一些url,菜

诺花雨的博客 2385

保姆级教程:手把手配置MAX9295/9296 GMSL2-CSI2链路,搞定4LAN/1LAN模式与常见调试

本文提供MAX9295/9296 GMSL2-CSI2链路的详细配置教程,涵盖4LAN和1LAN模式的硬件连接、寄存器配置及调试技巧。通过实战案例和代码示例,帮助开发者快速实现高带宽视频传输,解决常见问题如信号同步和功耗优化,适用于车载摄像头和机器人视觉系统开发。

weixin_42561143的博客 434

AI编码规则:从提示工程到自动化,提升大模型生成代码质量

在软件工程领域,代码质量是保障软件可维护性、安全性和团队协作效率的核心。其背后遵循着从基础语法规范到架构设计原则的一系列工程实践。随着大语言模型(LLM)在代码生成任务中的广泛应用,如何确保AI生成的代码符合这些工程标准,成为一个关键的技术挑战。这涉及到将人类工程师积累的最佳实践,转化为机器可理解、可执行的明确约束。通过系统化的**编码规则**定义与集成,例如构建涵盖安全、风格、架构的多层次规则集,并将其融入**提示工程**或自动化工作流,可以显著引导AI产出更健壮、规范的代码。这种方法的价值在于,它能将模

weixin_42525189的博客 641

shiro整合开发-认证连接数据库

修改realm的doGetAuthenticationInfo,从数据库查询用户信息,realm返回的用户信息中包括 (md5加密后的串和salt),实现让shiro进行散列串的校验。 1.修改doGetAuthenticationInfo从数据库查询用户信息 //注入SysService来调用数据库的相关数据 @Autowired private SysServic

weixin_38104426的博客 401

从被秒封到稳过Cloudflare!Canvas/WebGL/WebRTC多维度浏览器指纹隐身全实战

反爬和反反爬,本质上是一场持续的博弈,没有100%的隐身,只有不断升级的伪装。网上很多教程只给了个基础的噪声代码,却没讲透反爬的检测逻辑,导致你用了还是被封。这套方案的核心,不是简单的API重写,而是站在反爬的角度,模拟真实用户的所有特征,保证所有指纹的一致性、合理性、完整性。目前这套方案我用了半年,跑了上千万次请求,稳过国内国外99%的主流反爬平台,没有出现过一次因为指纹关联导致的批量封禁。大家有什么更狠的反爬场景,或者更好的伪装技巧,欢迎评论区一起交流。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1193

shiro demo

Myrealmpublic class MyRealm extends AuthorizingRealm { // 进行授权的方法 @Override protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { SimpleAuthorizati

昭瑞的专栏 558

手把手教你学Simulink——整流器场景:基于PWM控制的单相全桥整流器设计

摘要:本文详细介绍了使用Simulink搭建基于PWM控制的单相全桥整流器的完整设计流程。主要内容包括:系统结构设计(含交流电源、全桥整流器、滤波电路等模块)、分步骤建模过程(从创建项目到添加各功能模块)、双闭环控制系统设计(电压外环和电流内环PI控制)、参数设置建议及仿真分析。通过仿真验证,该整流器可实现单位功率因数运行和稳定输出电压,并提供了数字锁相环等优化方向。文章为电力电子系统设计提供了实用的Simulink建模指导。(149字)

MHD0815的博客 324

AUTOSAR知识点:PDUR(PDU Router)基础知识

通过定义路由表和实现相应的路由和缓冲逻辑,PDUR能够确保PDU在不同ECU之间的可靠传输。在上述示例中,我们定义了一个简单的PDUR路由表,其中列出了源ECU和目标ECU之间的映射关系。当收到来自源ECU的PDU时,PDUR模块会根据路由表查找目标ECU,并将PDU传输到相应的目标ECU。PDUR的主要功能是将接收到的PDU从一个ECU路由到另一个ECU,并确保数据的正确传输。需要注意的是,上述示例是一个简化的实现,实际的PDUR模块可能包含更复杂的功能和逻辑。

EcmFsharp的博客 1157

shiro dogetauthenticationinfo 不执行_Shiro—强大且易用的Java安全框架

配套视频:shiro安全框架课程教程_java进阶之Apache Shiro权限验证框架视频讲解_Shiro从入门到实践_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com百度网盘链接:https://pan.baidu.com/s/1TT6_odMoC5eAuWdmMETjVg 提取码:v4y2 本文主要内容1. Shiro简介2. Shiro架构原理3. IN...

weixin_39673704的博客 752

激光雷达的64线,32线,16线,你弄懂了吗?

激光雷达的 64 线、32 线、16 线是指激光雷达系统中能够同时发射和接收激光脉冲的激光线的数量5。

谢谢大家的关注和点赞!这里只有纯纯的知识干货,没有一句废话。希望能实实在在帮到大家~要是觉得有用,别忘了给我点支持哟,你 2637

Shiro - Shiro简介;Shiro与Spring Security区别;Spring Boot集成Shiro

以下引自百度百科Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。三个核心组件:Subject,SecurityManager 和 Realms。...

MinggeQingchun的博客 4万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Shiro - 快速搭建第一个 Shiro 基础工程

Apache Shiro 是一个轻量级 Java 安全框架,提供认证、授权、会话管理和加密功能。本文从零开始搭建基础 Shiro 工程,首先介绍了 Shiro 的核心概念(Subject、SecurityManager、Realm等),然后通过 Maven 配置环境依赖。文章演示了两种实现方式:1)基于 INI 配置文件的控制台应用,展示基本认证授权流程;2)Web 应用集成,通过过滤器实现 URL 级别安全控制。代码示例包括用户登录、权限检查等核心功能实现,帮助开发者快速掌握 Shiro 的基本用法。

千淘万漉虽辛苦,吹尽狂沙始到金 1万+

efm32 入门.pdf

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

Shiro框架漏洞分析与复现

Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性,可以快速轻松地保护任何应用程序——从最小的移动应用程序到最大的 Web 和企业应用程序。

未完成的歌~的博客 5316

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

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

Shiro 入门

Apache Shiro是一个功能强大且易于使用的Java安全框架,提供身份认证、授权、加密和会话管理等功能。本文详细介绍了Shiro的核心架构(包括Subject、SecurityManager、Realm等组件)、认证授权流程、MD5与盐值加密、SpringBoot整合、缓存机制(EhCache和Redis)以及权限控制实现。通过实战示例演示了用户注册登录、基于角色和资源的权限控制、Freemarker整合等场景,帮助开发者快速掌握Shiro在企业级应用中的安全防护技术。文章还涵盖了验证码集成、自定义R

weixin_51689532的博客 812

Shiro入门以及Shiro与web整合

标题Shiro入门以及Shiro与web整合 Shiro框架 - 什么是Shiro? Apache shiro是一个强大,易用的java安全框架执行身份认证,授权,密码和会话管理。 Shiro框架的核心组件 主要核心组件:Subject, Security Manager Realms 1. Subject: 即“当前操作的用户”,但是,在shiro中,Subject这一概念不仅仅指人,也可以是...

ahong_1920的博客 3161

springboot+shiro处理shiro中的异常

1.自定义realm中抛出异常信息 /** * @description:自定义Realm * @author: Administrator * @date: 2019-03-27 13:30 */ @Component public class MyRealm extends AuthorizingRealm { public static Log log = LogFacto...

大海无量的博客 6723

shiro

package com.sxt.sys.config; import java.util.HashMap; import java.util.Map; import javax.servlet.Filter; import org.apache.shiro.authc.credential.CredentialsMatcher; import org.apache.shiro.authc.credential.HashedCredentialsMatcher; import org.apache.sh

m0_49513347的博客 233

Shiro使用Session缓存

Shiro的Session缓存主要有两种方案,一种是使用Shiro自己的Session,不使用HttpSession,自己实现Shiro的Cache接口和Session缓存等;另外一种是直接使用spring boot的spring-session-data-redis的包,并且配置RedisTemplate和Redis的序列化方法就可以了。相对来说第二种方式非常简单,第一种还需要不少开发...

dipiao2231的博客 693

Shiro历史漏洞

1.2.5

2202_75361164的博客 554

Shiro是什么?为什么要用Shiro?

本文小新为大家带来Shiro入门概述相关知识,具体内容包括Shiro是什么,为什么要用 Shiro,Shiro与Spring Security 的对比,Shiro的基本功能(包括:基本功能框架,功能简介),Shiro框架原理(包括:Shiro架构(Shiro外部来看),Shiro架构(Shiro内部来看))等进行详尽介绍~

小新要变强的博客 2512

Javaweb安全——Shiro漏洞利用

炒个冷饭,主要还是对反序列化漏洞利用方式的学习,目前只测试了tomcat环境,后面再将weblogic的部分补一补。

weixin_43610673的博客 1207

shiro 简单介绍

大家好,我是修真院 武汉分院 第十五期 java 学员,今天 我给大家分享的是——shiro 简单介绍   1.背景介绍 2.知识剖析 3.常见问题 4.编码实战 5.扩展思考 6.参考文献 7.更多讨论   1.背景介绍 Apache Shiro是Java的一个安全框架。可以用在 JavaSE 和 JavaEE 环境,去帮助 完成:认证、授权、加密、会话管理、与Web集成、...

qq_42218123的博客 446
上一篇: Oracle安装及卸载文档
下一篇: Lucene
careyliang
博客等级 码龄15年 14粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值