草庐IT

框架获取当前登录用户以及用户信息

CSDN话题挑战赛第2期参赛话题:学习笔记前言📫作者简介:「六月暴雪飞梨花」,专注于研究Java,就职于科技型公司后端中级工程师🔥三连支持:如果此文还不错的话,还请❤️关注、👍点赞、👉收藏三连,支持一下博主~文章目录前言一Ruoyi框架1前端2后端二jeecg框架1前端2后端总结无论是哪一个框架,获取当前登录用户信息是必不可少的,做一些功能的时候我们肯定得用到当前登陆者信息,所以我就查找了一下几个框架是如何获取当前用户信息,例如在若依框架中,用this.$store.state.user就可以获取到。当获得的信息是极少时,不足够我们做其他功能时,当然你也可以自己在这个获取的基础上面增加所需信息

Spring Boot项目Shiro1.7.1版本默认密钥的漏洞

1.Shiro1.7.1默认密钥publicCookieRememberMeManagerrememberMeManager(){CookieRememberMeManagercookieRememberMeManager=newCookieRememberMeManager();cookieRememberMeManager.setCookie(rememberMeCookie());cookieRememberMeManager.setCipherKey(Base64.decode("fCq+/xW488hMTCD+cmJ3aQ=="));returncookieRememberMeMan

shiro的payload长度限制绕过

一、背景yishiro反序列化漏洞常规利用点在数据包的header头中,在这里直接插入目标代码,生成的payload是很长的,肯定会超过中间件header长度限制,如何解决这个问题呢?主要绕过的方式有以下几种:1.从外部或从HTTP请求body中加载类字节码,header头中的payload仅仅实现读取和加载外部字节码的功能2.反射修改AbstractHttp11Protocol的maxHttpHeaderSize3.classbytes使用gzip+base64压缩编码测试环境:shiroMemshell/springboot-shiroatmaster·yyhuni/shiroMemshe

JAVA安全框架之shiro

Shiro是什么ApacheShiro是一个功能强大且易于使用的Java安全(权限)框架。Shiro可以完成:认证、授权、加密、会话管理、与Web集成、缓存等。借助Shiro您可以快速轻松地保护任何应用程序——从最小的移动应用程序到最大的Web和企业应用程序。官网:https://shiro.apache.org/  为什么要用Shiro shrio开源自2003年,到目前为止框架格局发生了相当大的变化,因此今天仍然有很多系统在使用Shiro。这与Shiro的特性密不可分。易于使用:使用Shiro构建系统安全框架非常简单。全面:Shiro包含系统安全框架需要的功能,满足安全需求的“一站式服务”

Shiro框架漏洞分析与复现

Shiro简介ApacheShiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性,可以快速轻松地保护任何应用程序——从最小的移动应用程序到最大的Web和企业应用程序。1、Shiro反序列化漏洞(CVE-2016-4437,Shiro-550)漏洞原理:shiro框架在登录时,如果勾选了RememberMe的功能,关闭浏览器再次访问时便无需再次登录,此时cookie中会增加一个rememberMe字段,其value的值是经过序列化、AES加密和Base64编码后得到的结果。服务端在接收到一个Cookie时,会按照如下步骤进行解析处理

java - 调用方法 "SecurityUtils.getSubject();"是否总是会命中 redis 数据库?

我正在我的项目中实现redis-shirosession管理功能,目前我对Shiro和Redis的了解非常少。我想知道调用下面是否会每次都访问redis数据库来检查redis数据库中是否存在任何sessionId。服务代码SubjectcurrentUser=SecurityUtils.getSubject();Sessionsession=currentUser.getSession();Controller中的代码:publicStringgetSomrthing(@CookieValue("JSESSIONID")StringfooCookie){callingSomeServi

java - 调用方法 "SecurityUtils.getSubject();"是否总是会命中 redis 数据库?

我正在我的项目中实现redis-shirosession管理功能,目前我对Shiro和Redis的了解非常少。我想知道调用下面是否会每次都访问redis数据库来检查redis数据库中是否存在任何sessionId。服务代码SubjectcurrentUser=SecurityUtils.getSubject();Sessionsession=currentUser.getSession();Controller中的代码:publicStringgetSomrthing(@CookieValue("JSESSIONID")StringfooCookie){callingSomeServi

shiro安全认证之FilterChainDefinitionMap

最近在用shiro实现安全认证功能时发现一个问题上图我们定义了一个LinkedHashMap,并往Map里面添加了两对键值对,然后执行bean.setFilterChainDefinitionMap(filterMap) 之后在将这两个键值对里面的值进行修改,但是没有执行上面的set操作,debug时发现,虽然没有执行set操作,但是FilterChainDefinitionMap里面的filterMap的键值对的值仍然发生了改变。 甚至在后面再添加一个新的键值对,也能够进入FilterChainDefinitionMap里面,猜测这是Map的机制导致的。同时注意一个点,在使用shiro安全认

【重点】springcloud分布式中gateway+shiro+jwt认证流程(思路)

项目原来是单体架构,现拆分成springcloud微服务架构。过程中,整理了一下项目“认证授权”功能的微服务之间的调用思路:如下两个方法的切入点都是在ShiroConfig配置类(@Configuration)中@Bean注入的:   1shiroFilterFactoryBean-> JwtFilter中的onAccessDenied()            ->无token:直接放过                  -->登录/login                      --->远程调用oauth模块                        ---->去验证(usern

Shiro身份验证绕过漏洞及修复方案

近期Shiro修复了一个身份验证绕过漏洞(CVE-2022-40664),1.10.0之前的版本在请求forward或include时不进行拦截鉴权。 下方测试代码,方法1(noauth)不需要权限,方法2(needauth)配置了authc,方法1转发方法2,则可以绕过方法2的鉴权。/***不需要身份验证(鉴权)的方法*/@RequestMapping(value="/shiro/noauth",method=RequestMethod.GET)publicStringnoauth(){return"forward:needauth";}/***需要身份验证(鉴权)的方法*/@Request