解决由于Spring Security上下文导致的Tomcat中的内存泄漏

时间:2019-02-28 16:11:41

标签: java spring spring-security tomcat9 security-context

在尝试使用Spring Security关闭已在其中部署了Spring应用程序的Tomcat时,我进入了下面,并且Tomcat进程在关闭后仍在运行。

  

org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks Web应用程序[ROOT]创建了一个ThreadLocal,其键类型为[java.lang.InheritableThreadLocal](值[java.lang.InheritableThreadLocal@56113384]),并且值为键入[org.springframework.security.core.context.SecurityContextImpl](值[org.springframework.security.core.context.SecurityContextImpl@ffffffff:空身份验证]),但在停止Web应用程序时无法将其删除。线程将随着时间的流逝而更新,以尝试避免可能的内存泄漏。

我知道人们也遇到过类似的问题,但是无法在我们的应用程序中获得有关如何解决此类问题的具体答案,甚至有可能根据我已经阅读的一些答案来解决此问题。安全性在于它不会清除SecurityContext的线程本地引用。

如果可能的话,有人可以提供有关如何解决此问题的详细步骤。

如果无法解决,是否可以指出在Spring Security或一般情况下描述此问题的文档。

我已经尝试在使用后清除安全上下文,但是仍然遇到这些问题。

0 个答案:

没有答案