Added the RemoteIpValve to the Tomcat configuration, if enabled by a property configurable in the pom.xml. By default the valve is enabled.
git-svn-id: https://svn.apache.org/repos/asf/tomcat/maven-plugin/trunk@1612758 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/tomcat7-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat7/run/AbstractExecWarMojo.java b/tomcat7-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat7/run/AbstractExecWarMojo.java
index c8f3544..37cd308 100644
--- a/tomcat7-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat7/run/AbstractExecWarMojo.java
+++ b/tomcat7-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat7/run/AbstractExecWarMojo.java
@@ -174,6 +174,13 @@
/**
* see http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html
*/
+ @Parameter( property = "maven.tomcat.exec.war.enableRemoteIpValve", defaultValue = "true",
+ required = true )
+ protected String enableRemoteIpValve;
+
+ /**
+ * see http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html
+ */
@Parameter( property = "maven.tomcat.exec.war.accessLogValveFormat", defaultValue = "%h %l %u %t %r %s %b %I %D",
required = true )
protected String accessLogValveFormat;
@@ -283,6 +290,7 @@
properties.put( Tomcat7Runner.ARCHIVE_GENERATION_TIMESTAMP_KEY,
Long.toString( System.currentTimeMillis() ) );
properties.put( Tomcat7Runner.ENABLE_NAMING_KEY, Boolean.toString( enableNaming ) );
+ properties.put( Tomcat7Runner.ENABLE_REMOTE_IP_VALVE, enableRemoteIpValve );
properties.put( Tomcat7Runner.ACCESS_LOG_VALVE_FORMAT_KEY, accessLogValveFormat );
properties.put( Tomcat7Runner.HTTP_PROTOCOL_KEY, connectorHttpProtocol );
diff --git a/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java b/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java
index abe0b28..7b112df 100644
--- a/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java
+++ b/tomcat7-war-runner/src/main/java/org/apache/tomcat/maven/runner/Tomcat7Runner.java
@@ -26,6 +26,7 @@
import org.apache.catalina.startup.ContextConfig;
import org.apache.catalina.startup.Tomcat;
import org.apache.catalina.valves.AccessLogValve;
+import org.apache.catalina.valves.RemoteIpValve;
import org.apache.juli.ClassLoaderLogManager;
import org.apache.tomcat.util.ExceptionUtils;
import org.apache.tomcat.util.http.fileupload.FileUtils;
@@ -68,6 +69,8 @@
public static final String ENABLE_NAMING_KEY = "enableNaming";
+ public static final String ENABLE_REMOTE_IP_VALVE = "enableRemoteIpValve";
+
public static final String ACCESS_LOG_VALVE_FORMAT_KEY = "accessLogValveFormat";
public static final String CODE_SOURCE_CONTEXT_PATH = "codeSourceContextPath";
@@ -311,6 +314,15 @@
tomcat.setConnector( connector );
}
+ boolean enableRemoteIpValve =
+ Boolean.parseBoolean(runtimeProperties.getProperty( Tomcat7Runner.ENABLE_REMOTE_IP_VALVE, Boolean.TRUE.toString()));
+
+ if (enableRemoteIpValve) {
+ debugMessage("Adding RemoteIpValve");
+ RemoteIpValve riv = new RemoteIpValve();
+ tomcat.getHost().getPipeline().addValve(riv);
+ }
+
// add a default acces log valve
AccessLogValve alv = new AccessLogValve();
alv.setDirectory( new File( extractDirectory, "logs" ).getAbsolutePath() );