]> source.dussan.org Git - archiva.git/commitdiff
[MRM-1487] Unable to add a proxy connector
authorOlivier Lamy <olamy@apache.org>
Wed, 10 Aug 2011 15:51:26 +0000 (15:51 +0000)
committerOlivier Lamy <olamy@apache.org>
Wed, 10 Aug 2011 15:51:26 +0000 (15:51 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1156241 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-web/archiva-webapp/pom.xml
archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/AbstractActionSupport.java
archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/interceptor/ArchivaParametersInterceptor.java [new file with mode: 0644]
archiva-modules/archiva-web/archiva-webapp/src/main/resources/struts.xml
archiva-modules/archiva-web/archiva-webapp/src/test/resources/log4j.xml

index afb20eca4f9c2385e05786b0d973b1fdae9a7be1..30e2ab252c7c149370d1067a25165fe11445ce36 100644 (file)
       <groupId>commons-lang</groupId>
       <artifactId>commons-lang</artifactId>
     </dependency>
+    <dependency>
+      <groupId>ognl</groupId>
+      <artifactId>ognl</artifactId>
+      <version>3.0.2</version>
+    </dependency>
     <dependency>
       <groupId>org.apache.struts</groupId>
       <artifactId>struts2-core</artifactId>
index 9afe67b2268607345ec80bbcdacea4531db7f2de..1c95e2c645774a3405603505fa31455b50a202a4 100644 (file)
@@ -22,6 +22,7 @@ package org.apache.maven.archiva.web.action;
 import com.google.common.collect.Lists;\r
 import com.opensymphony.xwork2.ActionContext;\r
 import com.opensymphony.xwork2.ActionSupport;\r
+import com.opensymphony.xwork2.interceptor.ParameterNameAware;\r
 import org.apache.archiva.audit.AuditEvent;\r
 import org.apache.archiva.audit.AuditListener;\r
 import org.apache.archiva.audit.Auditable;\r
@@ -179,4 +180,5 @@ public abstract class AbstractActionSupport
         }\r
         return beans;\r
     }\r
+\r
 }\r
diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/interceptor/ArchivaParametersInterceptor.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/interceptor/ArchivaParametersInterceptor.java
new file mode 100644 (file)
index 0000000..7b64152
--- /dev/null
@@ -0,0 +1,31 @@
+package org.apache.maven.archiva.web.interceptor;
+
+import com.opensymphony.xwork2.interceptor.ParametersInterceptor;
+
+import java.util.regex.Pattern;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: olamy
+ * Date: 10/08/11
+ * Time: 16:55
+ * To change this template use File | Settings | File Templates.
+ */
+public class ArchivaParametersInterceptor extends ParametersInterceptor
+{
+
+    private String acceptedParamNames = "[a-zA-Z0-9\\-\\.\\]\\[\\(\\)_'\\s]+";
+    private Pattern acceptedPattern = Pattern.compile(acceptedParamNames);
+
+    @Override
+    protected boolean acceptableName( String name )
+    {
+        boolean accept = super.acceptableName( name );
+        if (!accept)
+        {
+            // [MRM-1487] second try adding '-' in pattern
+            accept = acceptedPattern.matcher( name ).matches();
+        }
+        return accept;
+    }
+}
index 11cba8223fdc0778054d94efc82e09bbb42f9ad1..809b0b6f64da1711f203bff8b82d5b0bf50c6d23 100644 (file)
       <interceptor name="redbackAutoLogin" class="redbackAutoLoginInterceptor"/>
       <interceptor name="redbackPolicyEnforcement" class="redbackPolicyEnforcementInterceptor"/>
       <interceptor name="paramFilter" class="com.opensymphony.xwork2.interceptor.ParameterFilterInterceptor"/>
+      <interceptor name="archivaParams" class="org.apache.maven.archiva.web.interceptor.ArchivaParametersInterceptor"/>
+
+
+      <interceptor-stack name="defaultArchivaStack">
+        <interceptor-ref name="exception"/>
+        <interceptor-ref name="alias"/>
+        <interceptor-ref name="servletConfig"/>
+        <interceptor-ref name="i18n"/>
+        <interceptor-ref name="prepare"/>
+        <interceptor-ref name="chain"/>
+        <interceptor-ref name="debugging"/>
+        <interceptor-ref name="scopedModelDriven"/>
+        <interceptor-ref name="modelDriven"/>
+        <interceptor-ref name="fileUpload"/>
+        <interceptor-ref name="checkbox"/>
+        <interceptor-ref name="multiselect"/>
+        <interceptor-ref name="staticParams"/>
+        <interceptor-ref name="actionMappingParams"/>
+        <interceptor-ref name="archivaParams">
+          <param name="excludeParams">dojo\..*,^struts\..*</param>
+        </interceptor-ref>
+        <interceptor-ref name="conversionError"/>
+        <interceptor-ref name="validation">
+            <param name="excludeMethods">input,back,cancel,browse</param>
+        </interceptor-ref>
+        <interceptor-ref name="workflow">
+            <param name="excludeMethods">input,back,cancel,browse</param>
+        </interceptor-ref>
+      </interceptor-stack>
 
       <interceptor-stack name="configuredArchivaStack">
         <interceptor-ref name="redbackForceAdminUser"/>
         <interceptor-ref name="redbackAutoLogin"/>
-        <interceptor-ref name="defaultStack"/>
+        <interceptor-ref name="defaultArchivaStack"/>
         <interceptor-ref name="paramFilter">
           <param name="blocked">externalResult</param>
         </interceptor-ref>
@@ -63,7 +92,7 @@
       <interceptor-stack name="unconfiguredArchivaStack">
         <interceptor-ref name="redbackForceAdminUser"/>
         <interceptor-ref name="redbackAutoLogin"/>
-        <interceptor-ref name="defaultStack"/>
+        <interceptor-ref name="defaultArchivaStack"/>
         <interceptor-ref name="redbackPolicyEnforcement"/>
         <interceptor-ref name="redbackSecureActions">
           <param name="enableReferrerCheck">false</param>
 
       <interceptor-stack name="configuredPrepareParamsStack">
         <!-- <interceptor-ref name="prepare" /> -->
-        <interceptor-ref name="params"/>
+        <interceptor-ref name="archivaParams"/>
         <interceptor-ref name="configuredArchivaStack"/>
       </interceptor-stack>
     </interceptors>
index 2df973ac86fd1b2d66823d79122f7677ad68835e..b683ef67611a766b314ed09ee5e41c6014d4211d 100644 (file)
@@ -27,6 +27,9 @@
       <param name="ConversionPattern" value="%d [%t] %-5p %c %x - %m%n"/>
     </layout>
   </appender>
+  <logger name="com.opensymphony.xwork2.interceptor.ParametersInterceptor">
+    <level value="debug"/>
+  </logger>
   <logger name="org.apache.commons.configuration.DefaultConfigurationBuilder">
     <level value="error"/>
   </logger>