This is an automated email from the ASF dual-hosted git repository.

ni3galave pushed a commit to branch ranger-2.2
in repository https://gitbox.apache.org/repos/asf/ranger.git


The following commit(s) were added to refs/heads/ranger-2.2 by this push:
     new f7d3345  RANGER-3342 : Need to make the Ranger embedded server work 
directory configurable
f7d3345 is described below

commit f7d334589494e32f75f07beb8c7222164967b5a2
Author: Vishal Suvagia <[email protected]>
AuthorDate: Mon Jul 19 17:30:25 2021 +0530

    RANGER-3342 : Need to make the Ranger embedded server work directory 
configurable
    
    Issue:
    Currently the work directory for Ranger embedded server is not 
configurable. Need to make the work directory configurable to a custom location 
so that user can customize if required.
    
    Changes:
    Added configuration to make the work directory configurable for the 
embedded server.
    
    Testing:
    Validated changes locally.
    
    Signed-off-by: Nitin Galave <[email protected]>
---
 .../org/apache/ranger/server/tomcat/EmbeddedServer.java  | 16 +++++++++++++---
 .../resources/conf.dist/ranger-admin-default-site.xml    |  4 ++++
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git 
a/embeddedwebserver/src/main/java/org/apache/ranger/server/tomcat/EmbeddedServer.java
 
b/embeddedwebserver/src/main/java/org/apache/ranger/server/tomcat/EmbeddedServer.java
index 1371682..d3b1084 100644
--- 
a/embeddedwebserver/src/main/java/org/apache/ranger/server/tomcat/EmbeddedServer.java
+++ 
b/embeddedwebserver/src/main/java/org/apache/ranger/server/tomcat/EmbeddedServer.java
@@ -37,15 +37,16 @@ import java.util.Iterator;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import org.apache.catalina.Context;
 import org.apache.catalina.LifecycleException;
 import org.apache.catalina.connector.Connector;
+import org.apache.catalina.core.StandardContext;
 import org.apache.catalina.startup.Tomcat;
 import org.apache.catalina.valves.AccessLogValve;
 import org.apache.catalina.valves.ErrorReportValve;
 import org.apache.commons.lang.StringUtils;
 import org.apache.hadoop.security.SecureClientLogin;
 import org.apache.log4j.PropertyConfigurator;
+
 import org.apache.ranger.credentialapi.CredentialReader;
 
 import javax.net.ssl.KeyManager;
@@ -259,8 +260,17 @@ public class EmbeddedServer {
                        }
                        LOG.info("Adding webapp [" + webContextName + "] = path 
["
                                        + webapp_dir + "] .....");
-                       Context webappCtx = server.addWebapp(webContextName, 
new File(
-                                       webapp_dir).getAbsolutePath());
+                       StandardContext webappCtx = (StandardContext) 
server.addWebapp(webContextName, new File(
+                           webapp_dir).getAbsolutePath());
+                       String workDirPath = 
EmbeddedServerUtil.getConfig("ranger.tomcat.work.dir", "");
+                       if (!workDirPath.isEmpty() && new 
File(workDirPath).exists()) {
+                           webappCtx.setWorkDir(workDirPath);
+                       } else {
+                            if (LOG.getLevel().equals(Level.FINE)) {
+                                LOG.fine("Skipping to set tomcat server work 
directory, '" + workDirPath +
+                                    "', as it is blank or directory does not 
exist.");
+                            }
+                       }
                        webappCtx.init();
                        LOG.info("Finished init of webapp [" + webContextName
                                        + "] = path [" + webapp_dir + "].");
diff --git 
a/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml 
b/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml
index 8842071..5ffeb02 100644
--- a/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml
+++ b/security-admin/src/main/resources/conf.dist/ranger-admin-default-site.xml
@@ -615,4 +615,8 @@
                        <name>ranger.default.browser-useragents</name>
                        <value>Mozilla,Opera,Chrome</value>
           </property>
+          <property>
+            <name>ranger.tomcat.work.dir</name>
+            <value></value>
+          </property>
 </configuration>

Reply via email to