Shiro使用自己的SessionId管理和rememberMe配置

SpringBoot整合Shiro实现安全认证与权限控制 在Java企业级开发中,安全认证是系统架构的核心组件。Apache Shiro作为轻量级安全框架,通过Subject、SecurityManager和Realm三大核心组件,提供了简洁而强大的认证授权解决方案。相比Spring Security的复杂配置,Shiro以其'简单至上'的设计哲学显著降低了学习曲线。技术实现上,Shiro支持基于角色的访问控制(RBAC)和权限字符串的细粒度控制,通过哈希加密算法保障密码安全,并可与Redis等缓存技术集成提升性能。典型应用场景包括电商系统的用户权限管理、金融平台 阅读详情

Session配置

   <!-- 会话ID生成器 -->
    <bean id="sessionIdGenerator" class="org.apache.shiro.session.mgt.eis.JavaUuidSessionIdGenerator"/>

    <!-- 会话Cookie模板,使用sid存储sessionid -->
    <bean id="sessionIdCookie" class="org.apache.shiro.web.servlet.SimpleCookie">
        <constructor-arg value="sid"/>
        <property name="httpOnly" value="true"/>
        <property name="maxAge" value="180000"/>
    </bean>

    <!-- 会话DAO -->
    <bean id="sessionDAO" class="org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO">
        <property name="activeSessionsCacheName" value="shiro-activeSessionCache"/>
        <property name="sessionIdGenerator" ref="sessionIdGenerator"/>
    </bean>

    <!-- 会话验证调度器 -->
    <bean id="sessionValidationScheduler" class="org.apache.shiro.session.mgt.quartz.QuartzSessionValidationScheduler">
        <property name="sessionValidationInterval" value="1800000"/>
        <property name="sessionManager" ref="sessionManager"/>
    </bean>

    <!-- 会话管理器 -->
    <bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
        <property name="globalSessionTimeout" value="1800000"/>
        <property name="deleteInvalidSessions" value="true"/>
        <property name="sessionValidationSchedulerEnabled" value="true"/>
        <property name="sessionValidationScheduler" ref="sessionValidationScheduler"/>
        <property name="sessionDAO" ref="sessionDAO"/>
        <property name="sessionIdCookieEnabled" value="true"/>
        <property name="sessionIdCookie" ref="sessionIdCookie"/>
    </bean>

RememberMe配置

<bean id="rememberMeCookie" class="org.apache.shiro.web.servlet.SimpleCookie">
        <constructor-arg value="rememberMe"/>
        <property name="httpOnly" value="true"/>
        <property name="maxAge" value="2592000"/><!-- 30 days -->
    </bean>

    <!-- rememberMe管理器  -->
    <bean id="rememberMeManager" class="org.apache.shiro.web.mgt.CookieRememberMeManager">
        <property name="cipherKey"
                  value="#{T(org.apache.shiro.codec.Base64).decode('4AvVhmFLUs0KTA3Kprsdag==')}"/>
        <property name="cookie" ref="rememberMeCookie"/>
    </bean>

注入sessionmanager和rememberMeManager到securityManager

   <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
        <property name="realm" ref="userRealm"/>
        <property name="sessionManager" ref="sessionManager"/>
        <property name="cacheManager" ref="cacheManager"/>
        <property name="rememberMeManager" ref="rememberMeManager"/>
    </bean>
若依(RuoYi)后台登录的那些‘坑’:弱口令、Session泄露与前端逻辑缺陷 本文深入分析了若依(RuoYi)后台登录系统的安全风险,包括默认凭证泄露、会话管理缺陷和前端逻辑漏洞等关键问题。针对这些漏洞,提供了详细的防御方案,如修改默认密码、强化会话管理和修复前端缺陷,帮助开发者提升系统安全性。 阅读详情

相关推荐

若依(RuoYi)后台管理系统的安全自查清单:开发与运维必看的5个加固点

本文详细介绍了若依(RuoYi)后台管理系统的5个关键安全加固点,包括Druid监控台访问控制、Swagger接口文档管理、中间件防护、Shiro安全配置优化和认证体系强化。针对常见漏洞提供可落地的解决方案,帮助开发与运维团队提升系统安全性,防止数据泄露和未授权访问。

天天开心 429

Spring Boot + Shiro 等保三级复测实战:12行代码修复高危漏洞

在Java Web应用开发中,会话管理与身份认证是保障系统安全的核心机制。Shiro作为广泛使用的Java安全框架,其RememberMe功能的实现原理涉及Cookie加密与反序列化机制,若密钥管理不当或使用默认配置,极易引发反序列化漏洞,导致身份鉴别被绕过。从技术价值看,合理配置会话Cookie属性(如HttpOnly、Secure、SameSite)能有效防御XSS、CSRF等常见攻击,而采用强随机密钥或按需禁用非必要功能,则是纵深防御的关键实践。在医疗、金融等强合规要求的应用场景中,这些安全措施直接关

weixin_30861459的博客 380

计算机网络简答题

协议定义了在两个或多个通信实体之间交换的报文格式和顺序,以及发送接收报文以及其他事件需要采取的操作。为。

m0_61636632的博客 1699

shiro 自定义多sessionIdCookie 配置 重写

关于shiro中sessionId的自定义重写,上篇文章有涉及 通过上次的引入,发现对spring注入机制反而有跟多的理解 所以直接动手撸起袖子开干。   一 需求 首先是我需要做什么,因为一个项目集成两个系统的原因,导致session相互污染,导致登陆或异常登陆session管理混乱。 查找资料其中有人遇到过类似的问题。 &lt;!-- 会话Cookie模板 --&gt;...

z362249834的博客 3841

Visual Studio 2022与Qt集成实战:解决Qt.props导入错误的完整指南

本文详细解析了在Visual Studio 2022中集成Qt开发时,如何解决因Qt.props文件导入失败导致的编译错误。文章从问题根源入手,深入剖析了Qt.props文件与QtMsBuild环境变量的关系,并提供了从检查文件存在性、配置环境变量到直接修改项目文件路径的完整排查与修复方案,帮助开发者快速恢复项目构建。

wdx01234567的博客 675

从仿真曲线到电路状态:用Cadence Virtuoso深度剖析CS放大器各个工作区(以电流源负载为例)

本文通过Cadence Virtuoso平台,深入剖析电流源负载CS放大器在不同工作区的表现,从仿真曲线解读电路状态。详细介绍了如何通过Vout-Vin直流扫描曲线判断MOS管工作区域(截止区、饱和区、线性区),并验证理论与仿真的一致性,提升模拟IC设计调试效率。

weixin_30940783的博客 442

在shiro当设置sessionIdCookie配置的domain和访问url不匹配时,每次请求都会重新生成session

在Servlet容器中,默认使用JSESSIONID Cookie维护会话 如下配置了domain <!-- 设置Cookie名字, 默认为: JSESSIONID 问题: 与SERVLET容器名冲突, 如JETTY, TOMCAT 等默认JSESSIONID, 当跳出SHIRO SERVLET时如ERROR-PAGE容器会为JSESSIONID重

zsg88的专栏 1万+

python实现RsaWithSHA256签名以及国密Sm3WithSm2签名

【代码】python实现RsaWithSHA256签名以及国密Sm3WithSm2签名。

weixin_45005677的博客 3352

Shiro第十三章-RememberMe和Cookie

简介 首先在登录页面选中remember me然后登录成功;如果是浏览器登录,一般会把remember me的cookie写到客户端保存下来; 关闭浏览器再次打开,会发现浏览器还是记住你的; 访问一般的网页服务端还是知道你是谁的,且能正常访问; 但是比如我们访问淘宝时,如果要查看我的订单或进行支付时,还是需要再进行身份验证,以确定当前用户还是你。 remember me...

海恩的博客 6298

聚类分析之——Kmeans算法(一)

原创地址:http://www.toutiao.com/i6399454239554273794/ 聚类分析是一种静态数据分析方法,常被用于数据挖掘、机器学习、模式识别等领域,聚类是一种无监督式的学习方法。它是在未知样本类别的情况下,通过计算样本彼此间的距离(欧式距离,马式距离,汉明距离,余弦距离等)来估计样本所属类别。从结构性来划分,聚类方法分为自上而下和自下而上两种方法。聚类的算法有很多

june2017的博客 3530

C#实现Socket通信同时监听多客户端(附完整源码)

C#实现Socket通信同时监听多客户端(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 427

shiro会话管理

首先导入pom.xml-- slf4j核心包 -- > < dependency > < groupId > org . slf4j < / groupId > < artifactId > slf4j - api < / artifactId > < version > $ {

qq_63531917的博客 539

ROM和RAM在单片机程序运行理解

ROM和RAM是电子设备中两种核心存储组件,主要区别在于:ROM用于长期存储系统程序、用户文件等固定数据,断电后数据不丢失,但写入速度较慢;RAM则用于临时存储运行中的程序和数据,读写速度快但断电后数据会清空。在单片机中,ROM存储程序代码和常量,RAM存储运行时的变量和数据。两者协同工作,ROM如同"永久档案库"保存必要信息,RAM则像"临时工作台"支持高速运算,共同确保设备正常运行。

qq_37999850的博客 1619

二级缓存(ehcache)

二级缓存 (ehcache) 1.缓存的作用 拉高程序的性能 2.什么样的数据需要缓存 很少被修改或根本不改的数据 3.ehcache是什么 Ehcache 是现在最流行的纯Java开源缓存框架,配置简单、结构清晰、功能强大 注1:本章介绍的是2.X版本,3.x的版本和2.x的版本API差异比较大 4.ehcache的特点 4.1 够快 Ehcache的发行有一段时长了,经过几年的努力和不计其数的性能测试,Ehcache终被设计于large, high concurrency systems. 4.2 够简

qq_47755376的博客 480

Linux系统故障排查思路实践教程(上)

本文主要介绍了Linux系统日志分析与常见故障排查的实用方法。首先从系统日志的分类及其涉及的日志文件进行说明;其次详细讲解了忘记用户密码的解决方案;接着对系统无法启动问题,提供了异常断电后修复文件系统、/etc/fstab文件丢失恢复等常见故障的处理方案。最后介绍了文件系统只读错误的排查思路和修复方法,包括磁盘空间检查、文件系统修复等实用技巧。全文提供了大量具体命令和操作流程,为Linux系统维护人员提供了实用的故障处理指南。

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 328

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 之rememberMe / session

一、简介 ssm web 中记住用户信息可在下次用户访问时直接访问相关数据。web 中记住用户信息时使用Cookie 技术实现记住用户相关信息。 二、创建Maven Web 工程 本项目基于Shiro 之缓存 修改实现。 1.application.xml 修改为如下: <bean id="shiroFilter" class="org.apache.shiro.spring.web.Shi...

Zllvincent的博客 8083

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Shiro在请求头中获取sessionId以及rememberMe信息

默认情况,Shiro会把sessionId或rememberMe放入cookie中,每次请求会在cookie中获取,但在前后端分离下,跨域请求会导致cookie保存失败,本人介绍把sessionId或rememberMe放入request header中,兼容PC、App以及移动端浏览器。

_好好学习的博客 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

XNMS项目-SpringBoot+Shiro开发登录认证功能

项目采用的方式实现登录认证,登录认证具有以下功能: :目前接口都加了sessionId认证,但是没做用户菜单权限校验。举例说明:比如我只给test用户分配新增接口功能,但是当我使用PostMan软件调用修改接口也是可以调通,实际这样就不对,创建用户给用户分配权限的时候应该有接口权限校验,如果无权限也应该报错401,比如test用户调用修改接口应该报错401,但是我没写感觉有点复杂,所以现在仍然可以调通。 system.js(调用登录接口代码) index.js(配置拦截器处理逻辑) 后端 pom.xml

刘大猫 1280

Shiro认证和授权(上)基于Session的认证和授权

一、Shiro Shiro是堡垒的意思,是一个身份认证和权限校验框架。通常来说在管理系统中权限是必不可少的一部分。公司所有的人都在同一个系统上进行操作,但是并不是所有的人都具备相同的权利。那么就需要在系统中将每个人所拥有的的权限明确的标识出来并同时在后端进行校验。 权限系统按照颗粒粒度分为: 按钮级别权限(决定某个用户能做什么不能做什么) 数据级别权限(决定用户在能做这件事的前提下,能对哪些数据做这件事) 要实现权限系统分为两个步骤: 1.所见即所得 我们需要在系统的界面层面,将用户所具备的菜单和按钮给用户

蜗牛学院重庆校区的博客 1139

shiro原理

  一、web.xml中过滤器配置 1、过滤器DelegatingFilterProxy DelegatingFilterProxy做的事情是代理Filter的方法,从application context里获得bean。spring bean实现了Filter接口,但默认情况下,是由spring容器来管理其生命周期的(不是由servlet容器来管理)。如果设 置"targetFilterL...

7467

Shiro

Shiro 身份验证底层实现 依然靠数据库完成账号验证 Shiro处理密码验证 Shiro正常调用流程 Controller 页面请求和页面跳转,Subject.login(token)来调用Shiro验证 AuthorizingRealm的doGetAuthenticationInfo方法,来处理验证信息 在doGetAuthenticationInfo方法中,获取HttpSe...

careyliang的博客 233

shiro框架总结二

1.sessionid,以及cookie配置 v_v-s-baidu"/>

大鸡腿的博客 302

shrio

shrio shrio是做权限管理的,对比于spring security是很轻量级的,但是对于功能也会相对有限制。 shrio的功能 功能就是认证(登录实现)、资源权限管理、记住我、加密等 基本简介 首先shrio的内部架构就是三个部分,subject就是指当前的用户(不一定的人)是shrio和外部的jpa、securityManager是对subject进行管理的,相当于一个过滤器和控制器,然后realm是可以自定义的,就是需要的相关的数据,可以看成是一个datasource.之后会从多个角度描述,

sinat_39336328的博客 439

sessionId控制单点登陆

1.配置security-context.xml文件 <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...

weixin_30483013的博客 248

Sa-Token替代Shiro:Java权限认证框架的现代化实践

权限认证是系统安全的核心组件,传统RBAC模型通过角色-权限映射实现访问控制。现代Java生态中,Shiro曾是主流选择,但其复杂配置和会话管理在微服务场景下显现不足。Sa-Token作为轻量级解决方案,采用Token-Session模型实现分布式会话,支持注解鉴权和多端登录控制。相比Shiro,其API设计更简洁,内置Redis集成简化了分布式部署,特别适合前后端分离架构。通过对比登录认证、权限校验等核心功能实现,可见Sa-Token在开发效率和运维成本上的优势,为Java权限管理提供了更现代化的选择。

weixin_33937778的博客 381
上一篇: Shiro 1.2新功能DefaultPasswordService解惑
下一篇: Shiro Cache配置
开心的D哥
博客等级 码龄22年 63粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值