IDEA JeeSite框架httpSession.invalidate()无效问题解决方案
作者:贾树丙 发布时间:2023-09-23 19:44:24
标签:IDEA,JeeSite,框架,http,Session,invalidate
想要实现一个功能:同一个用户在两个不同的浏览器中登录,后面的踢掉之前的登录。
本来的思路是在httpSession * 中进行判断。但是在使用httpSession.invalidate();销毁Session的时候,这一句话会抛出奇怪的异常,怎么都解决不了。
这个时候可以使用一个比较笨的但是有效的一个方法来替代:
httpSession.setMaxInactiveInterval(1);
在代码中设置过期时间为1秒钟
当然这个方法只是耍小聪明,后来发现,我遇到的问题,实际上是JeeSite 框架集成了Shiro 登陆框架,而这个框架,已经默认实现了之前描述的功能,在它自定义的登录登出 * 中。
<!-- 定义Shiro安全管理配置 -->
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="realm" ref="systemAuthorizingRealm" />
<property name="sessionManager" ref="sessionManager" />
<property name="cacheManager" ref="shiroCacheManager" />
</bean>
<!-- 自定义会话管理配置 -->
<bean id="sessionManager" class="com.thinkgem.jeesite.common.security.shiro.session.SessionManager">
<property name="sessionDAO" ref="sessionDAO"/>
<!-- 会话超时时间,单位:毫秒 -->
<property name="globalSessionTimeout" value="${session.sessionTimeout}"/>
<!-- 定时清理失效会话, 清理用户直接关闭浏览器造成的孤立会话 -->
<property name="sessionValidationInterval" value="${session.sessionTimeoutClean}"/>
<property name="sessionValidationSchedulerEnabled" value="true"/>
<property name="sessionIdCookie" ref="sessionIdCookie"/>
<property name="sessionIdCookieEnabled" value="true"/>
</bean>
只需要修改属性文件jeesite.properties 中的属性即可
来源:https://www.cnblogs.com/acm-bingzi/p/sessionInvalidate.html
0
投稿
猜你喜欢
- 在开发应用过程中,客户端与服务端经常需要进行数据传输,涉及到重要隐私信息时,开发者自然会想到对其进行加密,即使传输过程中被“有心人”截取,也
- 话不多说,直接上实例:一、获取集合内重复值public void GetDuplicateValue(){ List<st
- 前言:本人目前从事java开发,但同时也在学习各种前端技术,下面是我做的一个前后端分离项目的一个小案例,不足之处请多多指教1. 项目技术选型
- 前言:Java异常处理的五个关键字:try、catch、finally、throw、throws抛出异常throw在编写程序时,我们必须要考
- 在Monkeyrunner做自动化测试时,可以使用模拟器,当然也可以选择用真机。不过,要想通过电脑来安装软件,操作手机,则必须先安装手机驱动
- 0、前言本文主要对几种常见Java序列化方式进行实现。包括Java原生以流的方法进行的序列化、Json序列化、FastJson序列化、Pro
- 前言Spring Seuciry相关的内容看了实在是太多了,但总觉得还是理解地不够巩固,还是需要靠知识输出做巩固。相关版本:java: jd
- 要求环境信息:WIN2008SERVER 开发工具:VS2015 开发语言:C#要求: 1.点击同步数据后接口获取数
- 前言当系统的并发比较高的时候,日志的处理输出也是一种性能的开销负担,所以,选择一个中间件来处理消费日志必不可少!下面是spring boot
- 本文实例讲述了Java模拟死锁发生之演绎哲学家进餐问题。分享给大家供大家参考,具体如下:一 点睛常见的死锁形式:当线程1已经占据资源R1,并
- 基本用法不说了,网上例子很多,这里主要介绍下比较特殊情况下使用的方法。1. 分组有的时候,我们对一个实体类需要有多中验证方式,在不同的情况下
- 这篇文章主要介绍了SpringCloud Feign参数问题及解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学
- BigDecimal除法精度和格式化输出import java.math.BigDecimal;import java.math.MathC
- 一、概念从本质上来说,它就是一个匿名函数,可以用来直接实现接口中的方法,从而简化代码。但是Lambda有一个限制,不能实现接口中的所有方法,
- 如何接收Post请求Body里的参数ApiPost测试数据{ "list": [
- Author:jeffreyDate:2019-04-08一、开发环境:1、mysql - 5.72、navicat(mysql客户端管理工
- 目录查查询指定列查询所有列条件查询子查询根据业务逻辑添加条件连接查询增新增一条批量新增删改主要演示DynamicSql风格代码如何使用,基本
- gravity与layout_gravity属性在android布局中,我们经常会用到“重心”-gr
- /** 保存方法 */ public void saveBitmap() { Log.e(TAG, "保存图片"); F
- finalize方法是什么finalize方法是Object的protected方法,Object的子类们可以覆盖该方法以实现资源清理工作,