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