【问题标题】:Potential spring security memory leak潜在的弹簧安全内存泄漏
【发布时间】:2018-10-11 00:38:13
【问题描述】:

我有一个使用 spring security core 3.1.1 并部署到 tomcat 实例的 grails 3.1.7 项目(不确定 tomcat 版本)。

日志中不时出现这一行:

2018 年 4 月 13 日 13:31:20.710 严重 [localhost-startStop-2]
org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks
Web 应用程序 [my-app] 使用
键创建了一个 ThreadLocal 类型 [java.lang.ThreadLocal] (值 [java.lang.ThreadLocal@6678f8db]) 和 type
的值 [org.springframework.security.web.firewall.FirewalledResponse](值
[org.springframework.security.web.firewall.FirewalledResponse@159982ef])
但在 Web 应用程序停止时未能将其删除。线程 将随着时间的推移而更新,以尽量避免可能的记忆 泄漏。

我知道这是tomcats正常运行it checks for memory leaks时的一部分,似乎大多数人只是选择忽略它。这就是我们过去所做的。这次我们被告知要“修复它”,但鉴于泄漏的线程局部变量来自 Spring 安全类,我不确定要修复什么或如何修复它。

所以在我开始绕路尝试调试之前,有谁知道这里发生了什么?有没有其他人看过这个?它是良性的还是我需要做更多的挖掘?我应该告诉安全人员什么来说服他们忽略它?

任何帮助将不胜感激!

【问题讨论】:

  • JVM 上的内存泄漏通常是性能问题,而不是安全问题。搜索您的 Spring 版本的安全问题,看看是否存在类似问题。
  • @LuisMuñoz 产品是“弹簧安全”;我不认为 OP 试图报告安全漏洞。
  • @christopher-schultz 同意。
  • 我在类似的场景中看到了同样的问题,因为 OP 描述说“当 Web 应用程序停止时”。在我的情况下,type 是另外一回事,因此它与在应用程序停止时未完全处理的 ThreadLocal 实例有关。

标签: spring tomcat grails spring-security


【解决方案1】:

事实证明,报告该错误的团队确实使用“kill -9”杀死了 webapp。在它之后清理tomcat是有道理的。

【讨论】:

    猜你喜欢
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    相关资源
    最近更新 更多