mirror of
https://github.com/apache/struts.git
synced 2026-08-11 01:27:14 +00:00
WW-5288 Export exempt classes as part of ConstantConfig
This commit is contained in:
@@ -18,6 +18,10 @@
|
||||
*/
|
||||
package org.apache.struts2.config.entities;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.struts2.StrutsConstants;
|
||||
import org.apache.struts2.dispatcher.StaticContentLoader;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@@ -27,10 +31,6 @@ import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.struts2.StrutsConstants;
|
||||
import org.apache.struts2.dispatcher.StaticContentLoader;
|
||||
|
||||
public class ConstantConfig {
|
||||
private Boolean devMode;
|
||||
private Boolean i18nReload;
|
||||
@@ -127,9 +127,11 @@ public class ConstantConfig {
|
||||
private Set<Class<?>> excludedClasses;
|
||||
private List<Pattern> excludedPackageNamePatterns;
|
||||
private Set<String> excludedPackageNames;
|
||||
private Set<Class<?>> excludedPackageExemptClasses;
|
||||
private Set<Class<?>> devModeExcludedClasses;
|
||||
private List<Pattern> devModeExcludedPackageNamePatterns;
|
||||
private Set<String> devModeExcludedPackageNames;
|
||||
private Set<Class<?>> devModeExcludedPackageExemptClasses;
|
||||
private BeanConfig excludedPatternsChecker;
|
||||
private BeanConfig acceptedPatternsChecker;
|
||||
private BeanConfig notExcludedAcceptedPatternsChecker;
|
||||
@@ -258,9 +260,11 @@ public class ConstantConfig {
|
||||
map.put(StrutsConstants.STRUTS_EXCLUDED_CLASSES, classesToString(excludedClasses));
|
||||
map.put(StrutsConstants.STRUTS_EXCLUDED_PACKAGE_NAME_PATTERNS, StringUtils.join(excludedPackageNamePatterns, ','));
|
||||
map.put(StrutsConstants.STRUTS_EXCLUDED_PACKAGE_NAMES, StringUtils.join(excludedPackageNames, ','));
|
||||
map.put(StrutsConstants.STRUTS_EXCLUDED_PACKAGE_EXEMPT_CLASSES, classesToString(excludedPackageExemptClasses));
|
||||
map.put(StrutsConstants.STRUTS_DEV_MODE_EXCLUDED_CLASSES, classesToString(devModeExcludedClasses));
|
||||
map.put(StrutsConstants.STRUTS_DEV_MODE_EXCLUDED_PACKAGE_NAME_PATTERNS, StringUtils.join(devModeExcludedPackageNamePatterns, ','));
|
||||
map.put(StrutsConstants.STRUTS_DEV_MODE_EXCLUDED_PACKAGE_NAMES, StringUtils.join(devModeExcludedPackageNames, ','));
|
||||
map.put(StrutsConstants.STRUTS_DEV_MODE_EXCLUDED_PACKAGE_EXEMPT_CLASSES, classesToString(devModeExcludedPackageExemptClasses));
|
||||
map.put(StrutsConstants.STRUTS_EXCLUDED_PATTERNS_CHECKER, beanConfToString(excludedPatternsChecker));
|
||||
map.put(StrutsConstants.STRUTS_ACCEPTED_PATTERNS_CHECKER, beanConfToString(acceptedPatternsChecker));
|
||||
map.put(StrutsConstants.STRUTS_NOT_EXCLUDED_ACCEPTED_PATTERNS_CHECKER, beanConfToString(notExcludedAcceptedPatternsChecker));
|
||||
@@ -1185,6 +1189,14 @@ public class ConstantConfig {
|
||||
this.excludedPackageNames = excludedPackageNames;
|
||||
}
|
||||
|
||||
public Set<Class<?>> getExcludedPackageExemptClasses() {
|
||||
return excludedPackageExemptClasses;
|
||||
}
|
||||
|
||||
public void setExcludedPackageExemptClasses(Set<Class<?>> excludedPackageExemptClasses) {
|
||||
this.excludedPackageExemptClasses = excludedPackageExemptClasses;
|
||||
}
|
||||
|
||||
public Set<Class<?>> getDevModeExcludedClasses() {
|
||||
return devModeExcludedClasses;
|
||||
}
|
||||
@@ -1209,6 +1221,14 @@ public class ConstantConfig {
|
||||
this.devModeExcludedPackageNames = devModeExcludedPackageNames;
|
||||
}
|
||||
|
||||
public Set<Class<?>> getDevModeExcludedPackageExemptClasses() {
|
||||
return devModeExcludedPackageExemptClasses;
|
||||
}
|
||||
|
||||
public void setDevModeExcludedPackageExemptClasses(Set<Class<?>> devModeExcludedPackageExemptClasses) {
|
||||
this.devModeExcludedPackageExemptClasses = devModeExcludedPackageExemptClasses;
|
||||
}
|
||||
|
||||
public BeanConfig getExcludedPatternsChecker() {
|
||||
return excludedPatternsChecker;
|
||||
}
|
||||
|
||||
@@ -18,21 +18,14 @@
|
||||
*/
|
||||
package org.apache.struts2.config.entities;
|
||||
|
||||
import com.opensymphony.xwork2.ActionContext;
|
||||
import com.opensymphony.xwork2.TestBean;
|
||||
import com.opensymphony.xwork2.inject.Container;
|
||||
import com.opensymphony.xwork2.util.ValueStack;
|
||||
import org.apache.struts2.StrutsConstants;
|
||||
import org.apache.struts2.components.TextField;
|
||||
import org.apache.struts2.dispatcher.StaticContentLoader;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
import org.springframework.mock.web.MockHttpServletRequest;
|
||||
import org.springframework.mock.web.MockHttpServletResponse;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
@@ -83,9 +76,11 @@ public class ConstantConfigTest {
|
||||
constantConfig.setExcludedClasses(null);
|
||||
constantConfig.setExcludedPackageNamePatterns(null);
|
||||
constantConfig.setExcludedPackageNames(null);
|
||||
constantConfig.setExcludedPackageExemptClasses(null);
|
||||
constantConfig.setDevModeExcludedClasses(null);
|
||||
constantConfig.setDevModeExcludedPackageNamePatterns(null);
|
||||
constantConfig.setDevModeExcludedPackageNames(null);
|
||||
constantConfig.setDevModeExcludedPackageExemptClasses(null);
|
||||
|
||||
Map<String, String> map = constantConfig.getAllAsStringsMap();
|
||||
Assert.assertNull(map.get(StrutsConstants.STRUTS_EXCLUDED_CLASSES));
|
||||
@@ -115,6 +110,25 @@ public class ConstantConfigTest {
|
||||
map.get(StrutsConstants.STRUTS_DEV_MODE_EXCLUDED_CLASSES));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testExemptClassesToString() {
|
||||
ConstantConfig constantConfig = new ConstantConfig();
|
||||
|
||||
Set<Class<?>> exemptClasses = new LinkedHashSet<>();
|
||||
exemptClasses.add(Object.class);
|
||||
exemptClasses.add(Runtime.class);
|
||||
exemptClasses.add(System.class);
|
||||
|
||||
constantConfig.setExcludedPackageExemptClasses(exemptClasses);
|
||||
constantConfig.setDevModeExcludedPackageExemptClasses(exemptClasses);
|
||||
|
||||
Map<String, String> map = constantConfig.getAllAsStringsMap();
|
||||
Assert.assertEquals("java.lang.Object,java.lang.Runtime,java.lang.System",
|
||||
map.get(StrutsConstants.STRUTS_EXCLUDED_PACKAGE_EXEMPT_CLASSES));
|
||||
Assert.assertEquals("java.lang.Object,java.lang.Runtime,java.lang.System",
|
||||
map.get(StrutsConstants.STRUTS_DEV_MODE_EXCLUDED_PACKAGE_EXEMPT_CLASSES));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSettingStaticContentPath() {
|
||||
// given
|
||||
|
||||
Reference in New Issue
Block a user