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 <lukasz.len...@gmail.com>
Authored: Fri Sep 25 10:42:43 2015 +0200
Committer: Lukasz Lenart <lukasz.len...@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

Reply via email to