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() );