首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Tomcat取消部署时,Apache Shiro Enums仍在内存中

是因为Tomcat在取消部署时并不会主动清理内存中的对象,而Apache Shiro Enums是一个枚举类型的对象,它们在内存中会一直存在直到被垃圾回收。

Apache Shiro是一个用于身份验证、授权和会话管理的强大的Java安全框架。Enums是Shiro框架中的一个重要组件,它定义了一组常量,用于表示不同的权限和角色。Enums对象在Shiro框架初始化时被加载到内存中,并在整个应用程序的生命周期中保持不变。

当Tomcat取消部署时,它会销毁Web应用程序的所有相关资源,包括Servlet、过滤器、监听器等,但并不会主动清理内存中的对象。这意味着Apache Shiro Enums对象仍然存在于内存中,尽管Web应用程序已经被取消部署。

为了解决这个问题,可以在Tomcat的上下文销毁事件中手动清理内存中的Enums对象。可以通过实现ServletContextListener接口,在contextDestroyed()方法中添加清理代码。具体的清理代码可以通过调用Enums的静态方法来清除内存中的对象。

另外,为了更好地管理内存和资源,可以考虑使用容器化技术,如Docker,将应用程序部署在容器中。当容器被销毁时,所有与应用程序相关的资源都会被自动清理,包括内存中的Enums对象。

总结起来,当Tomcat取消部署时,Apache Shiro Enums仍在内存中是因为Tomcat不会主动清理内存中的对象。为了解决这个问题,可以在Tomcat的上下文销毁事件中手动清理内存中的Enums对象。使用容器化技术也可以更好地管理内存和资源。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

研判特征流量

(sb.toString(), new Feature[] {Feature.SupportNonPublicField}); #第二种利用方式: 则需要应用部署Tomcat应用环境,因为Tomcat...应用环境自带tomcat-dbcp.jar 对于SpringBoot这种自带Tomcat可以直接以单个jar文件部署的需要在maven配置tomcat- dbcp。...而且对于不同的Tomcat版本使用的poc也不同:Tomcat 8.0以后使用 org.apache.tomcat.dbcp.dbcp2.BasicDataSource• Tomcat 8.0以下使用...org.apache.tomcat.dbcp.dbcp.BasicDataSourcelog4j流量特征:原理:该漏洞主要是由于日志在打印当遇到`${`后,以:号作为分割,将表达式内容分割成两部分,前面一部分...,由于var_pathinfo的默认配置为s,我们可利用$_GET['s']来传递路由信息,也可利用pathinfo来传递,但测试windows环境下会将$_SERVER['pathinfo']的\

43510

龙果支付系统搭建与部署

安全框架:Apache Shiro 1.2.5 日志管理:SLF4J 1.7.21、Log4j 1.2.17 数据库连接池:Druid 1.0.19 消息总线:ActiveMQ 5.11.4 工具包:fastjson...1.2.11 jQuery 框架:DWZ 系统运行环境 3.1 软件环境: MySQL JDK1.7或以上 apache-tomcat-7.0或其他容器 ActiveMQ 5.11 3.2 硬件环境...(最小配置): CPU:1核 内存:1G 安装部署 4.1 说明 运营管理系统登录账号密码:admin/123456 商户后台系统登录账号密码:boss运营后台添加用户录入手机和密码 roncoo-pay-common-core...:对账应用工程,独立jar方式启动 roncoo-pay-app-settlement:结算应用工程,独立jar方式启动 roncoo-pay-web-boss:运营管理后台,部署tomcat启动...roncoo-pay-web-gateway:支付网关工程,部署tomcat启动 roncoo-pay-web-sample-shop:模拟商城工程,部署tomcat启动 roncoo-pay-web-merchant

1.9K10

shiro——会话管理

一、会话管理    Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如Tomcat、WebLogic),不管是J2SE还是J2EE环境都可以使用,提供了会话管理,会话事件监听,会话存储/持久化...所谓会话,即用户访问应用时保持的连接关系,多次交互应用能够识别出当前访问的用户是谁,且可以多次交互中保存一些数据。...如访问一些网站登录成功后,网站可以记住用户,且退出之前都可以识别当前用户是谁。...memoryStoreEvictionPolicy:当达到maxElementsInMemory限制,Ehcache将会根据指定的策略去清理内存。默认策略是LRU(最近最少使用)。...clearOnFlush:内存数量最大是否清除。

96930

常见未授权访问漏洞实例

问题出在 Apache2 和 Tomcat 对 URL 处理的方式不一致,导致特定的 URL 可以绕过验证。... Shiro 的处理过程,会截断“;”后面的内容,虽然 Payload 的形式与 F5 的漏洞一样,但具体流程不太相同。将“;”处理后,Shiro 会与配置的过滤器进行比对。...而通过校验后再传入 Spring 之中, Spring 的处理流程下,和 Tomcat 一样,删除“;”和删除“../”并返回上一级目录。 进入Shiro处理 => /xxxxx/.....通体来说这两种绕过的方式,是 Shiro 处理 URL 的逻辑问题。...程序默认配置可能存在隐患 正如本文 Redis、jenkins,默认配置并未配置密码,并且如若服务部署公网 IP 上,且未对来源 IP 进行过滤,那么很可能造成安全事故。

2.7K10

Maven项目中常用jar包的坐标以及用法(个人总结)

配置,只需要将maven项目的类型改为pom,然后将本博文最后的模板引入即可. parent项目写好以后, 创建自己的项目,注意要填写父项目!!!...Druid已经阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。 坐标 <!... developerWorks 上其新系列的第一篇文章,软件工程师Mark Kolb 向您展示了如何使用 JSTL 标记来避免 JSP 页面中使用脚本编制元素。...引入坐标,一般与日志包一起添加 坐标 org.apache.shiro shiro-core<...远程部署插件 介绍 无需打开tomcat即可部署web项目,可实现虚拟机和windows上的热部署, 需要在坐标外部加 build双标签进行逻辑引入 . .具体看本人关于maven的博文 坐标

2.9K11

解决org.apache.shiro.session.UnknownSessionException: There is no session with id的问题

一、背景   最近在整合了Spring+Shiro+Redis实现tomcat集群session共享的问题之后,发布以后运行以后发现老是会出现:org.apache.shiro.session.UnknownSessionException...二、出现这个问题的原因   只所以出现这个问题是因为shiro的DefaultWebSessionManager类,默认Cookie名称是JSESSIONID,这样的话与servlet容器名冲突,...如jetty, tomcat等默认JSESSIONID, 当跳出shiro servlet如error-page容器会为JSESSIONID重新分配值导致登录会话丢失!   ...明白了出现这个问题的原因,就好办了,我们只需要自己指定一个与项目运行容器不冲突的sessionID就好了,具体如下,spring-shiro.xml中进行如下配置: <!...至于想知道spring+shiro+redis集成实现tomcat集群session共享的童鞋,请移步:Shrio+Redis实现tomcat集群共享session

2.4K30

框架安全之Shiro渗透复现

全面——没有其他安全框架的宽度范围可以同Apache Shiro一样,它可以成为你的“一站式”为您的安全需求提供保障。 灵活——Apache Shiro可以在任何应用程序环境工作。...服务端接收到一个Cookie,会按照如下步骤进行解析处理: 检索RememberMe Cookie的值 进行Base64解码 进行AES解码 进行反序列化操作 第4步的调用反序列化时未进行任何过滤.../download/](https://www.java.com/zh-CN/download/) 默认下一步安装即可 2、Tomcat8.x安装 下载地址:[https://tomcat.apache.org.../download-80.cgi](https://tomcat.apache.org/download-80.cgi) 默认下一步安装即可 3、部署Shiro war包 将whiro.war包放置C:...即访问/index无需登陆,而访问/user/test需要登陆认证。 #Shiro.ini/index = anon/user/** = authc------Ant格式:?

2.8K40

SpringBoot集成MyBatisPlus

静态资源 │ ├─upload 上传文件 │ ├─WEB-INF │ ├─templates 页面FreeMarker模版 技术选型: 核心框架:Spring Boot 1.5.1 安全框架:Apache...请尝试强制删除target目录下的所有文件) mvn clean package spring-boot:repackage 会在target目录生成wstro.war 直接部署Tomcat...seo.description 网页描述 (如果是中文,请进行Unicode转码 http://tool.chinaz.com/tools/unicode.aspx) server.port 服务端口 (部署...Tomcat上以Tomcat为准) server.contextPath 服务器上下文路径 (部署Tomcat上以Tomcat为准) spring.mail 设置邮件的端口...目录下面生成一个war包 直接部署Tomcat运行 此处Redis缓存注解和EhCache缓存注解只能使用1个 使用 @Primary标注 演示效果图: ?

1.6K20

浅谈 URL 解析与鉴权的陷阱

(org.apache.tomcat.util.threads) run:829, Thread (java.lang) 注: 这里使用的 Tomcat 为 9.0.78 版本,是文章编写 Tomcat9... Tomcat 请求对应的路由是存放在 request.mappingData 的。... Tomcat 默认有两个,分别是 jsp 和 jspx,都对应 org.apache.jasper.servlet.JspServlet; welcomeResources: 如果 URL 的最后一个字符是...结尾的 URI,先在末尾额外添加一个 /; 递归解析 URI 的 /./ 字符串,将其替换为 /; 递归解析 URI 的 /../ 字符串,移动相应的目录; 解析 /../ 如果超出了根目录会直接返回...Shiro Apache Shiro 是一个简单易用的认证和鉴权管理框架,虽然本身支持许多场景,但常用于 Web 应用的身份认证和路径鉴权。

58760

tomcat】不同域名解析到同一tomcat不同项目上 windows 环境下nginx + tomcat群 + redis 实现session共享

这些项目都部署同一个tomcat上的    解决步骤:         1.首先把所有域名都解析到这台服务器上,解析只能填写ip地址,不能指定端口的,默认访问解析IP的80端口     2.把web...项目部署tomcat安装目录下,需要和默认的webapps目录平级,并且直接将web项目打包为ROOT.war 启动时会解压到ROOT文件夹      目录结构如下: ?...所在服务器ip 端口8080 请修改为80,否则需要在域名后面加端口 下面每个项目都解析了两次,是为了用户输入网址,不管有没有www...群 + redis 实现session共享 2016年1月29日22:02更新 为了测试两个标准的spingmvc+hibernate+shiro web项目到底启动需要消耗多少内存,又发现了些问题 因为要部署两个项目...-7.0.11\site1\ROOT\] instead of [D:\dev\apache-tomcat-7.0.11\webapps\ROOT\] - Choose unique values for

1.1K30

Tomcat- 5.Tomcat Manager

概述 Tomcat Manager用来解决以下问题: 无需关闭或者重启tomcat的情况下,重新部署web应用或者取消对现有应用的部署 Tomcat服务器配置文件没有指定reloadable的情况下...URL参数包括: update 设置为true,任何已有的更新将会首先取消部署,默认值为false tag 指定一个标签名称,这个参数能够将已经部署的web应用与标签连接起来,如果web应用被取消部署...,以后重新部署,使用标签就能实现 注意该命令和/undeploy命令逻辑上是对立的。...该命令将会试图从已导致内存泄漏的web应用(当其处于停止,重新加载,以及被取消部署状态)。通常由一种分析器来确认结论。诊断使用了由StandardHost(标准主机)所提供的附加功能。...对于已经停止的,被重新加载或取消部署的web应用,由于之前运行所需要的类仍然加载在内存,从而造成内存泄漏。响应将把这种应用的每个上下文路径都单列一行。如果应用被加载了数次,就有可能被列出来数次。

1.7K40

Shiro RememberMe 漏洞检测的探索之路

前言 ShiroApache 旗下的一个用于权限管理的开源框架,提供开箱即用的身份验证、授权、密码套件和会话管理等功能。...漏洞成因 网上相关分析已经很多,使用了 Shiro 框架的 Web 应用,登录成功后的用户信息会加密存储 Cookie ,后续可以从 Cookie 读取用户认证信息,从而达到“记住我”的目的,简要流程如下...封装了一层,该 stream 的实现重写了 resolveClass 方法 ?...实战中常用的还有 JRMP 相关的方法,我们可以使用类似 fastjson 的方法来做 Shiro 的检测。可惜的是,这些方法目标网站无法出网都束手无策,而漏洞回显是解决这个问题的不二法门。...与 Shiro 搭配最多的 Web 中间件是 Tomcat,因此我们的注意力就转移到了 Tomcat 回显上。

3.1K30

springboot shiro权限管理「建议收藏」

(三) 身份认证 (四) 权限控制 一: pom.xml添加Shiro依赖 1.1: 要使用Shiro进行权限控制,那么很明显的就需要添加对Shiro的依赖包,pom.xml中加入如下配置: <!...memoryStoreEvictionPolicy:当达到maxElementsInMemory限制,Ehcache将会根据指定的策略去清理内存。默认策略是LRU(最近最少使用)。...clearOnFlush:内存数量最大是否清除。...三:身份认证 认证、授权内部实现机制中都有提到,最终处理都将交给Real进行处理。因为Shiro,最终是通过Realm来获取应用程序的用户、角色及权限信息的。...通常情况下,Realm中会直接从我们的数据源获取Shiro需要的验证信息。可以说,Realm是专用于安全框架的DAO.

87120

Spring不能将包含key值为null的map集合转换成JSON

:166) at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61) at org.apache.shiro.web.servlet.AdviceFilter.executeChain...at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66) at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain...:365) at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90) at org.apache.shiro.subject.support.SubjectCallable.call...:868) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1589) at org.apache.tomcat.util.net.SocketProcessorBase.run...说明我们需要转换的Map包含一个元素,且这个元素的Key为 null 经过逐一排查后,将map的key设置为 null 这部分代码修复,就好了。

2.4K10
领券