You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2015/09/28 20:53:20 UTC

[31/33] struts git commit: Switches Strict DMI to true by default and allows to be disabled in user's package

Switches Strict DMI to true by default and allows to be disabled in user's package


Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/86afcbe6
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/86afcbe6
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/86afcbe6

Branch: refs/heads/master
Commit: 86afcbe611f7c3afda26e396cc4504d3c9998398
Parents: b838105
Author: Lukasz Lenart <lu...@gmail.com>
Authored: Fri Sep 25 10:42:43 2015 +0200
Committer: Lukasz Lenart <lu...@gmail.com>
Committed: Fri Sep 25 10:42:43 2015 +0200

----------------------------------------------------------------------
 .../opensymphony/xwork2/config/entities/PackageConfig.java  | 9 +++++++--
 .../xwork2/config/providers/XmlConfigurationProvider.java   | 6 +++++-
 .../providers/XmlConfigurationProviderActionsTest.java      | 8 --------
 .../XmlConfigurationProviderExceptionMappingsTest.java      | 1 -
 .../providers/XmlConfigurationProviderInterceptorsTest.java | 4 ----
 .../providers/XmlConfigurationProviderResultsTest.java      | 1 -
 6 files changed, 12 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts/blob/86afcbe6/core/src/main/java/com/opensymphony/xwork2/config/entities/PackageConfig.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/entities/PackageConfig.java b/core/src/main/java/com/opensymphony/xwork2/config/entities/PackageConfig.java
index e5d3ef4..e297b49 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/entities/PackageConfig.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/entities/PackageConfig.java
@@ -433,7 +433,7 @@ public class PackageConfig extends Located implements Comparable, Serializable,
     public static class Builder implements InterceptorLocator {
 
         protected PackageConfig target;
-        private boolean strictDMI;
+        private boolean strictDMI = true;
 
         public Builder(String name) {
             target = new PackageConfig(name);
@@ -605,12 +605,17 @@ public class PackageConfig extends Located implements Comparable, Serializable,
         }
 
         public boolean isStrictMethodInvocation() {
+            // if Strict DMI was disabled in this package,
+            // return without evaluating parent packages
+            if (!strictDMI) {
+                return false;
+            }
             for (PackageConfig parent : target.parents) {
                 if (parent.isStrictMethodInvocation()) {
                     return true;
                 }
             }
-            return strictDMI;
+            return true;
         }
 
         public PackageConfig build() {

http://git-wip-us.apache.org/repos/asf/struts/blob/86afcbe6/core/src/main/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProvider.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProvider.java b/core/src/main/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProvider.java
index 7d2e065..35e2019 100644
--- a/core/src/main/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProvider.java
+++ b/core/src/main/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProvider.java
@@ -649,7 +649,11 @@ public class XmlConfigurationProvider implements ConfigurationProvider {
         String name = StringUtils.defaultString(packageElement.getAttribute("name"));
         String namespace = StringUtils.defaultString(packageElement.getAttribute("namespace"));
 
-        boolean strictDMI = Boolean.parseBoolean(packageElement.getAttribute("strict-method-invocation"));
+        // Strict DMI is enabled by default, it can disabled by user
+        boolean strictDMI = true;
+        if (packageElement.hasAttribute("strict-method-invocation")) {
+            strictDMI = Boolean.parseBoolean(packageElement.getAttribute("strict-method-invocation"));
+        }
 
         PackageConfig.Builder cfg = new PackageConfig.Builder(name)
                 .namespace(namespace)

http://git-wip-us.apache.org/repos/asf/struts/blob/86afcbe6/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderActionsTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderActionsTest.java b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderActionsTest.java
index cde4c62..bd23376 100644
--- a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderActionsTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderActionsTest.java
@@ -56,7 +56,6 @@ public class XmlConfigurationProviderActionsTest extends ConfigurationTestBase {
 
 
         ActionConfig barAction = new ActionConfig.Builder("", "Bar", SimpleAction.class.getName())
-                .addAllowedMethod(ActionConfig.REGEX_WILDCARD)
                 .addParams(params).build();
 
         // foo action is a little more complex, two params, a result and an interceptor stack
@@ -73,7 +72,6 @@ public class XmlConfigurationProviderActionsTest extends ConfigurationTestBase {
                 .addParams(params)
                 .addResultConfigs(results)
                 .addInterceptors(interceptors)
-                .addAllowedMethod(ActionConfig.REGEX_WILDCARD)
                 .build();
 
         // wildcard action is simple wildcard example
@@ -83,7 +81,6 @@ public class XmlConfigurationProviderActionsTest extends ConfigurationTestBase {
         ActionConfig wildcardAction = new ActionConfig.Builder("", "WildCard", SimpleAction.class.getName())
                 .addResultConfigs(results)
                 .addInterceptors(interceptors)
-                .addAllowedMethod(ActionConfig.REGEX_WILDCARD)
                 .build();
 
         // fooBar action is a little more complex, two params, a result and an interceptor stack
@@ -102,7 +99,6 @@ public class XmlConfigurationProviderActionsTest extends ConfigurationTestBase {
                 .addResultConfigs(results)
                 .addInterceptors(interceptors)
                 .addExceptionMappings(exceptionMappings)
-                .addAllowedMethod(ActionConfig.REGEX_WILDCARD)
                 .build();
 
         // TestInterceptorParam action tests that an interceptor worked
@@ -116,7 +112,6 @@ public class XmlConfigurationProviderActionsTest extends ConfigurationTestBase {
 
         ActionConfig intAction = new ActionConfig.Builder("", "TestInterceptorParam", SimpleAction.class.getName())
                 .addInterceptors(interceptors)
-                .addAllowedMethod(ActionConfig.REGEX_WILDCARD)
                 .build();
 
         // TestInterceptorParamOverride action tests that an interceptor with a param override worked
@@ -128,7 +123,6 @@ public class XmlConfigurationProviderActionsTest extends ConfigurationTestBase {
 
         ActionConfig intOverAction = new ActionConfig.Builder("", "TestInterceptorParamOverride", SimpleAction.class.getName())
                 .addInterceptors(interceptors)
-                .addAllowedMethod(ActionConfig.REGEX_WILDCARD)
                 .build();
 
         // execute the configuration
@@ -172,7 +166,6 @@ public class XmlConfigurationProviderActionsTest extends ConfigurationTestBase {
         ActionConfig barWithPackageDefaultClassRefConfig =
                 new ActionConfig.Builder("", "Bar", "")
                         .addParams(params)
-                        .addAllowedMethod(ActionConfig.REGEX_WILDCARD)
                         .build();
 
         // execute the configuration
@@ -198,7 +191,6 @@ public class XmlConfigurationProviderActionsTest extends ConfigurationTestBase {
 
         ActionConfig barWithoutClassNameConfig =
                 new ActionConfig.Builder("", "BarWithoutClassName", "")
-                        .addAllowedMethod(ActionConfig.REGEX_WILDCARD)
                         .addParams(params)
                         .build();
 

http://git-wip-us.apache.org/repos/asf/struts/blob/86afcbe6/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderExceptionMappingsTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderExceptionMappingsTest.java b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderExceptionMappingsTest.java
index d02a312..14e7383 100644
--- a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderExceptionMappingsTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderExceptionMappingsTest.java
@@ -46,7 +46,6 @@ public class XmlConfigurationProviderExceptionMappingsTest extends Configuration
             .addParams(parameters)
             .addResultConfigs(results)
             .addExceptionMappings(exceptionMappings)
-            .addAllowedMethod(ActionConfig.REGEX_WILDCARD)
             .build();
 
         // execute the configuration

http://git-wip-us.apache.org/repos/asf/struts/blob/86afcbe6/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorsTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorsTest.java b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorsTest.java
index cfd7f60..4f26b5f 100644
--- a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorsTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderInterceptorsTest.java
@@ -108,12 +108,10 @@ public class XmlConfigurationProviderInterceptorsTest extends ConfigurationTestB
 
         ActionConfig actionWithOwnRef = new ActionConfig.Builder("", "ActionWithOwnRef", SimpleAction.class.getName())
             .addInterceptors(interceptors)
-            .addAllowedMethod(ActionConfig.REGEX_WILDCARD)
             .build();
 
         ActionConfig actionWithDefaultRef = new ActionConfig.Builder("", "ActionWithDefaultRef", SimpleAction.class.getName())
             .addInterceptor(new InterceptorMapping("timer", objectFactory.buildInterceptor(timerInterceptor, new HashMap<String, String>())))
-            .addAllowedMethod(ActionConfig.REGEX_WILDCARD)
             .build();
 
         // sub package
@@ -186,7 +184,6 @@ public class XmlConfigurationProviderInterceptorsTest extends ConfigurationTestB
 
         ActionConfig intAction = new ActionConfig.Builder("", "TestInterceptorParam", SimpleAction.class.getName())
             .addInterceptors(interceptors)
-            .addAllowedMethod(ActionConfig.REGEX_WILDCARD)
             .build();
 
         // TestInterceptorParamOverride action tests that an interceptor with a param override worked
@@ -205,7 +202,6 @@ public class XmlConfigurationProviderInterceptorsTest extends ConfigurationTestB
 
         ActionConfig intOverAction = new ActionConfig.Builder("", "TestInterceptorParamOverride", SimpleAction.class.getName())
             .addInterceptors(interceptors)
-            .addAllowedMethod(ActionConfig.REGEX_WILDCARD)
             .build();
 
         ConfigurationProvider provider = buildConfigurationProvider("com/opensymphony/xwork2/config/providers/xwork-test-interceptor-params.xml");

http://git-wip-us.apache.org/repos/asf/struts/blob/86afcbe6/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderResultsTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderResultsTest.java b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderResultsTest.java
index d096c14..caa9da0 100644
--- a/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderResultsTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/config/providers/XmlConfigurationProviderResultsTest.java
@@ -67,7 +67,6 @@ public class XmlConfigurationProviderResultsTest extends ConfigurationTestBase {
         ActionConfig expectedAction = new ActionConfig.Builder("default", "Bar", SimpleAction.class.getName())
             .addParams(parameters)
             .addResultConfigs(results)
-            .addAllowedMethod(ActionConfig.REGEX_WILDCARD)
             .build();
 
         // execute the configuration