From cd776e6b38933ea918e54190465b1a9dc3152244 Mon Sep 17 00:00:00 2001 From: Christophe Mangeat Date: Thu, 7 Jun 2018 13:03:39 +0200 Subject: [PATCH] avoid crawler to obtain a thread with a remanant context --- core/src/main/java/jeeves/server/context/ServiceContext.java | 5 +++++ .../main/java/org/fao/geonet/api/AllRequestsInterceptor.java | 2 ++ 2 files changed, 7 insertions(+) diff --git a/core/src/main/java/jeeves/server/context/ServiceContext.java b/core/src/main/java/jeeves/server/context/ServiceContext.java index 0510af84904..2c70c4121aa 100644 --- a/core/src/main/java/jeeves/server/context/ServiceContext.java +++ b/core/src/main/java/jeeves/server/context/ServiceContext.java @@ -107,6 +107,11 @@ public static ServiceContext get() { return THREAD_LOCAL_INSTANCE.get(); } + + public static void clear() { + THREAD_LOCAL_INSTANCE.remove();; + ApplicationContextHolder.clear();; + } //-------------------------------------------------------------------------- //--- //--- Constructor diff --git a/services/src/main/java/org/fao/geonet/api/AllRequestsInterceptor.java b/services/src/main/java/org/fao/geonet/api/AllRequestsInterceptor.java index 78ef3032928..43dd8d78d43 100644 --- a/services/src/main/java/org/fao/geonet/api/AllRequestsInterceptor.java +++ b/services/src/main/java/org/fao/geonet/api/AllRequestsInterceptor.java @@ -23,6 +23,7 @@ package org.fao.geonet.api; +import jeeves.server.context.ServiceContext; import org.apache.commons.lang.StringUtils; import org.fao.geonet.utils.Log; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; @@ -86,6 +87,7 @@ private void createSessionForAllButNotCrawlers(HttpServletRequest request) { } } else { HttpSession httpSession = request.getSession(false); + ServiceContext.clear(); if (Log.isDebugEnabled(Log.REQUEST)) { Log.debug(Log.REQUEST, String.format( "Crawler '%s' detected. Session MUST be null: %s",