diff --git a/pom.xml b/pom.xml
index c4cf577..0611c43 100644
--- a/pom.xml
+++ b/pom.xml
@@ -118,7 +118,7 @@
     <commons-pool.version>2.5.0</commons-pool.version>
 
     <!-- Calcite deps, keep compatible with calcite.version -->
-    <jackson.version>2.6.7</jackson.version>
+    <jackson.version>2.10.0</jackson.version>
 
     <!-- Test Dependency versions -->
     <antlr.version>3.4</antlr.version>
@@ -164,8 +164,8 @@
     <dropwizard.version>3.1.2</dropwizard.version>
     <!-- REST Service, ref https://github.com/spring-projects/spring-boot/blob/v1.3.8.RELEASE/spring-boot-dependencies/pom.xml -->
     <spring.boot.version>1.3.8.RELEASE</spring.boot.version>
-    <spring.framework.version>4.3.26.RELEASE</spring.framework.version>
-    <spring.framework.security.version>4.2.3.RELEASE</spring.framework.security.version>
+    <spring.framework.version>5.2.22.RELEASE</spring.framework.version>
+    <spring.framework.security.version>5.5.7</spring.framework.security.version>
     <spring.framework.security.extensions.version>1.0.2.RELEASE</spring.framework.security.extensions.version>
     <opensaml.version>2.6.6</opensaml.version>
     <aspectj.version>1.8.9</aspectj.version>
diff --git a/server-base/src/main/java/org/apache/kylin/rest/util/Log4jConfigListener.java b/server-base/src/main/java/org/apache/kylin/rest/util/Log4jConfigListener.java
index 13eca74..2979030 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/util/Log4jConfigListener.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/util/Log4jConfigListener.java
@@ -18,32 +18,5 @@
 
 package org.apache.kylin.rest.util;
 
-import javax.servlet.ServletContextEvent;
-
-import org.apache.kylin.common.KylinConfig;
-
-public class Log4jConfigListener extends org.springframework.web.util.Log4jConfigListener {
-
-    private boolean isDebugTomcat;
-
-    public Log4jConfigListener() {
-        this.isDebugTomcat = KylinConfig.getInstanceFromEnv().isDevEnv();
-    }
-
-    @Override
-    public void contextInitialized(ServletContextEvent event) {
-        if (!isDebugTomcat) {
-            super.contextInitialized(event);
-        }
-        System.setProperty("needCheckCC", "true");
-
-    }
-
-    @Override
-    public void contextDestroyed(ServletContextEvent event) {
-        if (!isDebugTomcat) {
-            super.contextDestroyed(event);
-        }
-    }
-
+public class Log4jConfigListener {
 }
diff --git a/server/pom.xml b/server/pom.xml
index 3ca2f05..f482d7b 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -75,6 +75,22 @@
         </dependency>
 
         <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-core</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-databind</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-annotations</artifactId>
+            <scope>compile</scope>
+        </dependency>
+
+        <dependency>
             <groupId>org.opensaml</groupId>
             <artifactId>opensaml</artifactId>
             <exclusions>
diff --git a/server/src/main/resources/kylinSecurity.xml b/server/src/main/resources/kylinSecurity.xml
index c6fbff9..b16b91d 100644
--- a/server/src/main/resources/kylinSecurity.xml
+++ b/server/src/main/resources/kylinSecurity.xml
@@ -19,7 +19,7 @@
        xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans
 	http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
 	http://www.springframework.org/schema/security
-	http://www.springframework.org/schema/security/spring-security-4.2.xsd
+	https://www.springframework.org/schema/security/spring-security-5.5.xsd
 	http://www.springframework.org/schema/util
 	http://www.springframework.org/schema/util/spring-util-4.3.xsd
     http://www.springframework.org/schema/context
diff --git a/tool/pom.xml b/tool/pom.xml
index f9fff53..a2f32bb 100644
--- a/tool/pom.xml
+++ b/tool/pom.xml
@@ -32,7 +32,7 @@
     </parent>
 
     <properties>
-        <spring.framework.version>4.3.10.RELEASE</spring.framework.version>
+        <spring.framework.version>5.2.22.RELEASE</spring.framework.version>
     </properties>
 
     <dependencies>
