This is an automated email from the ASF dual-hosted git repository.

kusal pushed a commit to branch WW-5343-sec-extend
in repository https://gitbox.apache.org/repos/asf/struts.git

commit 62988f783fd6ce78aefb876ac5d84fb314bc5db8
Author: Kusal Kithul-Godage <g...@kusal.io>
AuthorDate: Wed Nov 15 00:30:12 2023 +1100

    WW-5343 Fix unit test compilation errors
---
 .../xwork2/ognl/OgnlValueStackTest.java            |   2 -
 .../xwork2/ognl/SecurityMemberAccessTest.java      | 155 ++++++++-------------
 .../util/SecurityMemberAccessInServletsTest.java   |  11 +-
 .../xwork2/ognl/SecurityMemberAccessProxyTest.java |   2 +-
 .../com/test/SecurityMemberAccessProxyTest.java    |  49 +------
 5 files changed, 60 insertions(+), 159 deletions(-)

diff --git 
a/core/src/test/java/com/opensymphony/xwork2/ognl/OgnlValueStackTest.java 
b/core/src/test/java/com/opensymphony/xwork2/ognl/OgnlValueStackTest.java
index 5f0ac5b26..210f7ea8b 100644
--- a/core/src/test/java/com/opensymphony/xwork2/ognl/OgnlValueStackTest.java
+++ b/core/src/test/java/com/opensymphony/xwork2/ognl/OgnlValueStackTest.java
@@ -48,7 +48,6 @@ import 
org.apache.logging.log4j.core.appender.AbstractAppender;
 import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.StrutsException;
 import org.apache.struts2.config.DefaultPropertiesProvider;
-import org.apache.struts2.config.StrutsXmlConfigurationProvider;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -100,7 +99,6 @@ public class OgnlValueStackTest extends XWorkTestCase {
             (CompoundRootAccessor) 
container.getInstance(PropertyAccessor.class, CompoundRoot.class.getName()),
             container.getInstance(TextProvider.class, "system"), 
allowStaticFieldAccess);
         container.inject(stack);
-        
ognlUtil.setAllowStaticFieldAccess(Boolean.toString(allowStaticFieldAccess));
         return stack;
     }
 
diff --git 
a/core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessTest.java 
b/core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessTest.java
index 08a3b919e..f25ecd30b 100644
--- 
a/core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessTest.java
+++ 
b/core/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessTest.java
@@ -20,23 +20,19 @@ package com.opensymphony.xwork2.ognl;
 
 import com.opensymphony.xwork2.TestBean;
 import com.opensymphony.xwork2.test.TestBean2;
-import com.opensymphony.xwork2.util.TextParseUtil;
+import ognl.MemberAccess;
 import org.junit.Before;
 import org.junit.Test;
 
 import java.lang.reflect.Field;
 import java.lang.reflect.Member;
 import java.lang.reflect.Method;
-import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
-import java.util.regex.Pattern;
 
-import static java.util.Arrays.asList;
-import static java.util.Collections.singletonList;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
@@ -77,9 +73,7 @@ public class SecurityMemberAccessTest {
         String propertyName = "stringField";
         Member member = 
FooBar.class.getDeclaredMethod(formGetterName(propertyName));
 
-        Set<String> excluded = new HashSet<>();
-        excluded.add(FooBar.class.getName());
-        sma.useExcludedClasses(excluded);
+        sma.useExcludedClasses(FooBar.class.getName());
 
         // when
         boolean accessible = sma.isAccessible(context, target, member, 
propertyName);
@@ -120,9 +114,7 @@ public class SecurityMemberAccessTest {
         String propertyName = "barLogic";
         Member member = BarInterface.class.getMethod(propertyName);
 
-        Set<String> excluded = new HashSet<>();
-        excluded.add(BarInterface.class.getName());
-        sma.useExcludedClasses(excluded);
+        sma.useExcludedClasses(BarInterface.class.getName());
 
         // when
         boolean accessible = sma.isAccessible(context, target, member, 
propertyName);
@@ -137,9 +129,7 @@ public class SecurityMemberAccessTest {
         String propertyName = "fooLogic";
         Member member = FooBar.class.getMethod(propertyName);
 
-        Set<String> excluded = new HashSet<>();
-        excluded.add(BarInterface.class.getName());
-        sma.useExcludedClasses(excluded);
+        sma.useExcludedClasses(BarInterface.class.getName());
 
         // when
         boolean accessible = sma.isAccessible(context, target, member, 
propertyName);
@@ -154,9 +144,7 @@ public class SecurityMemberAccessTest {
         String propertyName = "barLogic";
         Member member = BarInterface.class.getMethod(propertyName);
 
-        Set<String> excluded = new HashSet<>();
-        excluded.add(BarInterface.class.getName());
-        sma.useExcludedClasses(excluded);
+        sma.useExcludedClasses(BarInterface.class.getName());
 
         // when
         boolean accessible = sma.isAccessible(context, target, member, 
propertyName);
@@ -171,9 +159,7 @@ public class SecurityMemberAccessTest {
         String propertyName = "barLogic";
         Member member = BarInterface.class.getMethod(propertyName);
 
-        Set<String> excluded = new HashSet<>();
-        excluded.add(FooInterface.class.getName());
-        sma.useExcludedClasses(excluded);
+        sma.useExcludedClasses(FooInterface.class.getName());
 
         // when
         boolean accessible = sma.isAccessible(context, target, member, 
propertyName);
@@ -185,9 +171,7 @@ public class SecurityMemberAccessTest {
     @Test
     public void testPackageExclusion() throws Exception {
         // given
-        Set<Pattern> excluded = new HashSet<>();
-        excluded.add(Pattern.compile("^" + 
FooBar.class.getPackage().getName().replaceAll("\\.", "\\\\.") + ".*"));
-        sma.useExcludedPackageNamePatterns(excluded);
+        sma.useExcludedPackageNamePatterns("^" + 
FooBar.class.getPackage().getName().replaceAll("\\.", "\\\\.") + ".*");
 
         String propertyName = "stringField";
         Member member = FooBar.class.getMethod(formGetterName(propertyName));
@@ -202,13 +186,9 @@ public class SecurityMemberAccessTest {
     @Test
     public void testPackageExclusionExemption() throws Exception {
         // given
-        Set<Pattern> excluded = new HashSet<>();
-        excluded.add(Pattern.compile("^" + 
FooBar.class.getPackage().getName().replaceAll("\\.", "\\\\.") + ".*"));
-        sma.useExcludedPackageNamePatterns(excluded);
+        sma.useExcludedPackageNamePatterns("^" + 
FooBar.class.getPackage().getName().replaceAll("\\.", "\\\\.") + ".*");
 
-        Set<String> allowed = new HashSet<>();
-        allowed.add(FooBar.class.getName());
-        sma.useExcludedPackageExemptClasses(allowed);
+        sma.useExcludedPackageExemptClasses(FooBar.class.getName());
 
         String propertyName = "stringField";
         Member member = FooBar.class.getMethod(formGetterName(propertyName));
@@ -223,9 +203,7 @@ public class SecurityMemberAccessTest {
     @Test
     public void testPackageNameExclusion() throws Exception {
         // given
-        Set<String> excluded = new HashSet<>();
-        excluded.add(FooBar.class.getPackage().getName());
-        sma.useExcludedPackageNames(excluded);
+        sma.useExcludedPackageNames(FooBar.class.getPackage().getName());
 
         String propertyName = "stringField";
         Member member = FooBar.class.getMethod(formGetterName(propertyName));
@@ -240,13 +218,9 @@ public class SecurityMemberAccessTest {
     @Test
     public void testPackageNameExclusionExemption() throws Exception {
         // given
-        Set<String> excluded = new HashSet<>();
-        excluded.add(FooBar.class.getPackage().getName());
-        sma.useExcludedPackageNames(excluded);
+        sma.useExcludedPackageNames(FooBar.class.getPackage().getName());
 
-        Set<String> allowed = new HashSet<>();
-        allowed.add(FooBar.class.getName());
-        sma.useExcludedPackageExemptClasses(allowed);
+        sma.useExcludedPackageExemptClasses(FooBar.class.getName());
 
         String propertyName = "stringField";
         Member member = FooBar.class.getMethod(formGetterName(propertyName));
@@ -261,14 +235,10 @@ public class SecurityMemberAccessTest {
     @Test
     public void testPackageNameExclusionExemption2() throws Exception {
         // given
-        Set<String> excluded = new HashSet<>();
-        excluded.add(FooBar.class.getPackage().getName());
-        sma.useExcludedPackageNames(excluded);
+        sma.useExcludedPackageNames(FooBar.class.getPackage().getName());
 
         // Exemption must exist for both classes (target and member) if they 
both match a banned package
-        Set<String> allowed = new HashSet<>();
-        allowed.add(BarInterface.class.getName());
-        sma.useExcludedPackageExemptClasses(allowed);
+        sma.useExcludedPackageExemptClasses(BarInterface.class.getName());
 
         String propertyName = "barLogic";
         Member member = BarInterface.class.getMethod(propertyName);
@@ -283,15 +253,10 @@ public class SecurityMemberAccessTest {
     @Test
     public void testPackageNameExclusionExemption3() throws Exception {
         // given
-        Set<String> excluded = new HashSet<>();
-        excluded.add(FooBar.class.getPackage().getName());
-        sma.useExcludedPackageNames(excluded);
+        sma.useExcludedPackageNames(FooBar.class.getPackage().getName());
 
         // Exemption must exist for both classes (target and member) if they 
both match a banned package
-        Set<String> allowed = new HashSet<>();
-        allowed.add(BarInterface.class.getName());
-        allowed.add(FooBar.class.getName());
-        sma.useExcludedPackageExemptClasses(allowed);
+        sma.useExcludedPackageExemptClasses(String.join(",", 
BarInterface.class.getName(), FooBar.class.getName()));
 
         String propertyName = "barLogic";
         Member member = BarInterface.class.getMethod(propertyName);
@@ -306,9 +271,7 @@ public class SecurityMemberAccessTest {
     @Test
     public void testDefaultPackageExclusion() throws Exception {
         // given
-        Set<Pattern> excluded = new HashSet<>();
-        excluded.add(Pattern.compile("^" + 
FooBar.class.getPackage().getName().replaceAll("\\.", "\\\\.") + ".*"));
-        sma.useExcludedPackageNamePatterns(excluded);
+        sma.useExcludedPackageNamePatterns("^" + 
FooBar.class.getPackage().getName().replaceAll("\\.", "\\\\.") + ".*");
 
         Class<?> clazz = Class.forName("PackagelessAction");
 
@@ -321,7 +284,7 @@ public class SecurityMemberAccessTest {
 
     @Test
     public void testDefaultPackageExclusionSetting() throws Exception {
-        sma.disallowDefaultPackageAccess(true);
+        sma.useDisallowDefaultPackageAccess(Boolean.TRUE.toString());
 
         Class<?> clazz = Class.forName("PackagelessAction");
         boolean actual = sma.isAccessible(null, 
clazz.getConstructor().newInstance(), clazz.getMethod("execute"), null);
@@ -332,9 +295,7 @@ public class SecurityMemberAccessTest {
     @Test
     public void testDefaultPackageExclusion2() throws Exception {
         // given
-        Set<Pattern> excluded = new HashSet<>();
-        excluded.add(Pattern.compile("^$"));
-        sma.useExcludedPackageNamePatterns(excluded);
+        sma.useExcludedPackageNamePatterns("^$");
 
         Class<?> clazz = Class.forName("PackagelessAction");
 
@@ -368,7 +329,7 @@ public class SecurityMemberAccessTest {
     @Test
     public void testAccessStaticMethod() throws Exception {
         // given
-        sma.useExcludedClasses(new 
HashSet<>(singletonList(Class.class.getName())));
+        sma.useExcludedClasses(Class.class.getName());
 
         // when
         Member method = StaticTester.class.getMethod("sayHello");
@@ -381,7 +342,7 @@ public class SecurityMemberAccessTest {
     @Test
     public void testAccessStaticField() throws Exception {
         // given
-        sma.useExcludedClasses(new 
HashSet<>(singletonList(Class.class.getName())));
+        sma.useExcludedClasses(Class.class.getName());
 
         // when
         Member method = StaticTester.class.getField("MAX_VALUE");
@@ -395,7 +356,7 @@ public class SecurityMemberAccessTest {
     public void testBlockedStaticFieldWhenFlagIsTrue() throws Exception {
         // given
         assignNewSma(true);
-        sma.useExcludedClasses(new 
HashSet<>(singletonList(Class.class.getName())));
+        sma.useExcludedClasses(Class.class.getName());
 
         // when
         Member method = StaticTester.class.getField("MAX_VALUE");
@@ -407,7 +368,7 @@ public class SecurityMemberAccessTest {
         // public static final test
         // given
         assignNewSma(true);
-        sma.useExcludedClasses(new 
HashSet<>(singletonList(Class.class.getName())));
+        sma.useExcludedClasses(Class.class.getName());
 
         // when
         method = StaticTester.class.getField("MIN_VALUE");
@@ -419,7 +380,7 @@ public class SecurityMemberAccessTest {
         // package static test
         // given
         assignNewSma(true);
-        sma.useExcludedClasses(new 
HashSet<>(singletonList(Class.class.getName())));
+        sma.useExcludedClasses(Class.class.getName());
 
         // when
         method = StaticTester.getFieldByName("PACKAGE_STRING");
@@ -431,7 +392,7 @@ public class SecurityMemberAccessTest {
         // package final static test
         // given
         assignNewSma(true);
-        sma.useExcludedClasses(new 
HashSet<>(singletonList(Class.class.getName())));
+        sma.useExcludedClasses(Class.class.getName());
 
         // when
         method = StaticTester.getFieldByName("FINAL_PACKAGE_STRING");
@@ -443,7 +404,7 @@ public class SecurityMemberAccessTest {
         // protected static test
         // given
         assignNewSma(true);
-        sma.useExcludedClasses(new 
HashSet<>(singletonList(Class.class.getName())));
+        sma.useExcludedClasses(Class.class.getName());
 
         // when
         method = StaticTester.getFieldByName("PROTECTED_STRING");
@@ -455,7 +416,7 @@ public class SecurityMemberAccessTest {
         // protected final static test
         // given
         assignNewSma(true);
-        sma.useExcludedClasses(new 
HashSet<>(singletonList(Class.class.getName())));
+        sma.useExcludedClasses(Class.class.getName());
 
         // when
         method = StaticTester.getFieldByName("FINAL_PROTECTED_STRING");
@@ -467,7 +428,7 @@ public class SecurityMemberAccessTest {
         // private static test
         // given
         assignNewSma(true);
-        sma.useExcludedClasses(new 
HashSet<>(singletonList(Class.class.getName())));
+        sma.useExcludedClasses(Class.class.getName());
 
         // when
         method = StaticTester.getFieldByName("PRIVATE_STRING");
@@ -479,7 +440,7 @@ public class SecurityMemberAccessTest {
         // private final static test
         // given
         assignNewSma(true);
-        sma.useExcludedClasses(new 
HashSet<>(singletonList(Class.class.getName())));
+        sma.useExcludedClasses(Class.class.getName());
 
         // when
         method = StaticTester.getFieldByName("FINAL_PRIVATE_STRING");
@@ -582,7 +543,7 @@ public class SecurityMemberAccessTest {
     @Test
     public void testBlockedStaticFieldWhenClassIsExcluded() throws Exception {
         // given
-        sma.useExcludedClasses(new 
HashSet<>(Arrays.asList(Class.class.getName(), StaticTester.class.getName())));
+        sma.useExcludedClasses(String.join(",", Class.class.getName(), 
StaticTester.class.getName()));
 
         // when
         Member method = StaticTester.class.getField("MAX_VALUE");
@@ -595,7 +556,7 @@ public class SecurityMemberAccessTest {
     @Test
     public void testBlockStaticMethodAccess() throws Exception {
         // given
-        sma.useExcludedClasses(new 
HashSet<>(singletonList(Class.class.getName())));
+        sma.useExcludedClasses(Class.class.getName());
 
         // when
         Member method = StaticTester.class.getMethod("sayHello");
@@ -608,7 +569,7 @@ public class SecurityMemberAccessTest {
     @Test
     public void testBlockAccessIfClassIsExcluded() throws Exception {
         // given
-        sma.useExcludedClasses(new 
HashSet<>(singletonList(Class.class.getName())));
+        sma.useExcludedClasses(Class.class.getName());
 
         // when
         Member method = Class.class.getMethod("getClassLoader");
@@ -621,7 +582,7 @@ public class SecurityMemberAccessTest {
    @Test
     public void testBlockAccessIfClassIsExcluded_2() throws Exception {
         // given
-        sma.useExcludedClasses(new 
HashSet<>(singletonList(ClassLoader.class.getName())));
+        sma.useExcludedClasses(ClassLoader.class.getName());
 
         // when
         Member method = ClassLoader.class.getMethod("loadClass", String.class);
@@ -635,7 +596,7 @@ public class SecurityMemberAccessTest {
     @Test
     public void testAllowAccessIfClassIsNotExcluded() throws Exception {
         // given
-        sma.useExcludedClasses(new 
HashSet<>(singletonList(ClassLoader.class.getName())));
+        sma.useExcludedClasses(ClassLoader.class.getName());
 
         // when
         Member method = Class.class.getMethod("getClassLoader");
@@ -648,7 +609,7 @@ public class SecurityMemberAccessTest {
    @Test
     public void testIllegalArgumentExceptionExpectedForTargetMemberMismatch() 
throws Exception {
         // given
-        sma.useExcludedClasses(new 
HashSet<>(singletonList(Class.class.getName())));
+        sma.useExcludedClasses(Class.class.getName());
 
         // when
         Member method = ClassLoader.class.getMethod("loadClass", String.class);
@@ -667,7 +628,7 @@ public class SecurityMemberAccessTest {
     @Test
     public void testAccessPrimitiveInt() throws Exception {
         // given
-        
sma.useExcludedPackageNames(TextParseUtil.commaDelimitedStringToSet("java.lang.,ognl,javax"));
+        sma.useExcludedPackageNames("java.lang.,ognl,javax");
 
         String propertyName = "intField";
         Member member = FooBar.class.getMethod(formGetterName(propertyName));
@@ -682,7 +643,7 @@ public class SecurityMemberAccessTest {
     @Test
     public void testAccessPrimitiveDoubleWithNames() throws Exception {
         // given
-        
sma.useExcludedPackageNames(TextParseUtil.commaDelimitedStringToSet("ognl.,javax."));
+        sma.useExcludedPackageNames("ognl.,javax.");
 
 
         Set<String> excluded = new HashSet<>();
@@ -691,7 +652,7 @@ public class SecurityMemberAccessTest {
         excluded.add(System.class.getName());
         excluded.add(Class.class.getName());
         excluded.add(ClassLoader.class.getName());
-        sma.useExcludedClasses(excluded);
+        sma.useExcludedClasses(String.join(",", excluded));
 
         String propertyName = "doubleValue";
         double myDouble = 1;
@@ -735,9 +696,7 @@ public class SecurityMemberAccessTest {
     @Test
     public void testAccessPrimitiveDoubleWithPackageRegExs() throws Exception {
         // given
-        Set<Pattern> patterns = new HashSet<>();
-        patterns.add(Pattern.compile("^java\\.lang\\..*"));
-        sma.useExcludedPackageNamePatterns(patterns);
+        sma.useExcludedPackageNamePatterns("^java\\.lang\\..*");
 
         String propertyName = "doubleValue";
         double myDouble = 1;
@@ -753,9 +712,7 @@ public class SecurityMemberAccessTest {
     @Test
     public void testAccessMemberAccessIsAccessible() throws Exception {
         // given
-        Set<String> excluded = new HashSet<>();
-        excluded.add(ognl.MemberAccess.class.getName());
-        sma.useExcludedClasses(excluded);
+        sma.useExcludedClasses(MemberAccess.class.getName());
 
         String propertyName = "excludedClasses";
         String setter = "setExcludedClasses";
@@ -771,9 +728,7 @@ public class SecurityMemberAccessTest {
     @Test
     public void testAccessMemberAccessIsBlocked() throws Exception {
         // given
-        Set<String> excluded = new HashSet<>();
-        excluded.add(SecurityMemberAccess.class.getName());
-        sma.useExcludedClasses(excluded);
+        sma.useExcludedClasses(SecurityMemberAccess.class.getName());
 
         String propertyName = "excludedClasses";
         String setter = "setExcludedClasses";
@@ -789,7 +744,7 @@ public class SecurityMemberAccessTest {
     @Test
     public void testPackageNameExclusionAsCommaDelimited() {
         // given
-        
sma.useExcludedPackageNames(TextParseUtil.commaDelimitedStringToSet("java.lang"));
+        sma.useExcludedPackageNames("java.lang");
 
         // when
         boolean actual = sma.isPackageExcluded(String.class);
@@ -801,36 +756,36 @@ public class SecurityMemberAccessTest {
     @Test
     public void classInclusion() throws Exception {
 
-        sma.useEnforceAllowlistEnabled(true);
+        sma.useEnforceAllowlistEnabled(Boolean.TRUE.toString());
 
         TestBean2 bean = new TestBean2();
         Method method = TestBean2.class.getMethod("getData");
 
         assertFalse(sma.checkAllowlist(bean, method));
 
-        sma.useAllowlistClasses(new 
HashSet<>(singletonList(TestBean2.class.getName())));
+        sma.useAllowlistClasses(TestBean2.class.getName());
 
         assertTrue(sma.checkAllowlist(bean, method));
     }
 
     @Test
     public void packageInclusion() throws Exception {
-        sma.useEnforceAllowlistEnabled(true);
+        sma.useEnforceAllowlistEnabled(Boolean.TRUE.toString());
 
         TestBean2 bean = new TestBean2();
         Method method = TestBean2.class.getMethod("getData");
 
         assertFalse(sma.checkAllowlist(bean, method));
 
-        sma.useAllowlistPackageNames(new 
HashSet<>(singletonList(TestBean2.class.getPackage().getName())));
+        sma.useAllowlistPackageNames(TestBean2.class.getPackage().getName());
 
         assertTrue(sma.checkAllowlist(bean, method));
     }
 
     @Test
     public void classInclusion_subclass() throws Exception {
-        sma.useEnforceAllowlistEnabled(true);
-        sma.useAllowlistClasses(new 
HashSet<>(singletonList(TestBean2.class.getName())));
+        sma.useEnforceAllowlistEnabled(Boolean.TRUE.toString());
+        sma.useAllowlistClasses(TestBean2.class.getName());
 
         TestBean2 bean = new TestBean2();
         Method method = TestBean2.class.getMethod("getName");
@@ -840,8 +795,8 @@ public class SecurityMemberAccessTest {
 
     @Test
     public void classInclusion_subclass_both() throws Exception {
-        sma.useEnforceAllowlistEnabled(true);
-        sma.useAllowlistClasses(new HashSet<>(asList(TestBean.class.getName(), 
TestBean2.class.getName())));
+        sma.useEnforceAllowlistEnabled(Boolean.TRUE.toString());
+        sma.useAllowlistClasses(String.join(",", TestBean.class.getName(), 
TestBean2.class.getName()));
 
         TestBean2 bean = new TestBean2();
         Method method = TestBean2.class.getMethod("getName");
@@ -851,8 +806,8 @@ public class SecurityMemberAccessTest {
 
     @Test
     public void packageInclusion_subclass() throws Exception {
-        sma.useEnforceAllowlistEnabled(true);
-        sma.useAllowlistPackageNames(new 
HashSet<>(singletonList(TestBean2.class.getPackage().getName())));
+        sma.useEnforceAllowlistEnabled(Boolean.TRUE.toString());
+        sma.useAllowlistPackageNames(TestBean2.class.getPackage().getName());
 
         TestBean2 bean = new TestBean2();
         Method method = TestBean2.class.getMethod("getName");
@@ -862,8 +817,10 @@ public class SecurityMemberAccessTest {
 
     @Test
     public void packageInclusion_subclass_both() throws Exception {
-        sma.useEnforceAllowlistEnabled(true);
-        sma.useAllowlistPackageNames(new 
HashSet<>(asList(TestBean.class.getPackage().getName(), 
TestBean2.class.getPackage().getName())));
+        sma.useEnforceAllowlistEnabled(Boolean.TRUE.toString());
+        sma.useAllowlistPackageNames(String.join(",",
+                TestBean.class.getPackage().getName(),
+                TestBean2.class.getPackage().getName()));
 
         TestBean2 bean = new TestBean2();
         Method method = TestBean2.class.getMethod("getName");
diff --git 
a/core/src/test/java/org/apache/struts2/util/SecurityMemberAccessInServletsTest.java
 
b/core/src/test/java/org/apache/struts2/util/SecurityMemberAccessInServletsTest.java
index 6fcfd9f1e..e67ef535e 100644
--- 
a/core/src/test/java/org/apache/struts2/util/SecurityMemberAccessInServletsTest.java
+++ 
b/core/src/test/java/org/apache/struts2/util/SecurityMemberAccessInServletsTest.java
@@ -25,10 +25,7 @@ import org.apache.struts2.views.jsp.ActionTag;
 import javax.servlet.jsp.tagext.TagSupport;
 import java.lang.reflect.Member;
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.Map;
-import java.util.Set;
-import java.util.regex.Pattern;
 
 public class SecurityMemberAccessInServletsTest extends StrutsInternalTestCase 
{
 
@@ -43,9 +40,7 @@ public class SecurityMemberAccessInServletsTest extends 
StrutsInternalTestCase {
         // given
         SecurityMemberAccess sma = new SecurityMemberAccess(true);
 
-        Set<Pattern> excluded = new HashSet<Pattern>();
-        excluded.add(Pattern.compile("^(?!javax\\.servlet\\..+)(javax\\..+)"));
-        sma.useExcludedPackageNamePatterns(excluded);
+        
sma.useExcludedPackageNamePatterns("^(?!javax\\.servlet\\..+)(javax\\..+)");
 
         String propertyName = "value";
         Member member = TagSupport.class.getMethod("doStartTag");
@@ -61,9 +56,7 @@ public class SecurityMemberAccessInServletsTest extends 
StrutsInternalTestCase {
         // given
         SecurityMemberAccess sma = new SecurityMemberAccess(true);
 
-        Set<Pattern> excluded = new HashSet<>();
-        excluded.add(Pattern.compile("^javax\\..+"));
-        sma.useExcludedPackageNamePatterns(excluded);
+        sma.useExcludedPackageNamePatterns("^javax\\..+");
 
         String propertyName = "value";
         Member member = TagSupport.class.getMethod("doStartTag");
diff --git 
a/plugins/spring/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessProxyTest.java
 
b/plugins/spring/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessProxyTest.java
index 61282f3d1..4d8046de9 100644
--- 
a/plugins/spring/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessProxyTest.java
+++ 
b/plugins/spring/src/test/java/com/opensymphony/xwork2/ognl/SecurityMemberAccessProxyTest.java
@@ -46,7 +46,7 @@ public class SecurityMemberAccessProxyTest extends 
XWorkTestCase {
             "chaintoAOPedTestSubBeanAction", null, context);
 
         SecurityMemberAccess sma = new SecurityMemberAccess(true);
-        sma.disallowProxyMemberAccess(true);
+        sma.useDisallowProxyMemberAccess(Boolean.TRUE.toString());
 
         Member member = 
proxy.getAction().getClass().getMethod("isExposeProxy");
 
diff --git 
a/plugins/spring/src/test/java/com/test/SecurityMemberAccessProxyTest.java 
b/plugins/spring/src/test/java/com/test/SecurityMemberAccessProxyTest.java
index ef53fee70..a6ad274c3 100644
--- a/plugins/spring/src/test/java/com/test/SecurityMemberAccessProxyTest.java
+++ b/plugins/spring/src/test/java/com/test/SecurityMemberAccessProxyTest.java
@@ -18,52 +18,5 @@
  */
 package com.test;
 
-import com.opensymphony.xwork2.ActionProxy;
-import com.opensymphony.xwork2.XWorkTestCase;
-import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider;
-import com.opensymphony.xwork2.ognl.SecurityMemberAccess;
-import org.apache.struts2.config.StrutsXmlConfigurationProvider;
-
-import java.lang.reflect.Member;
-import java.util.HashMap;
-import java.util.Map;
-
-public class SecurityMemberAccessProxyTest extends XWorkTestCase {
-    private Map<String, Object> context;
-
-    @Override
-    public void setUp() throws Exception {
-        super.setUp();
-
-        context = new HashMap<>();
-        // Set up XWork
-        XmlConfigurationProvider provider = new 
StrutsXmlConfigurationProvider("com/opensymphony/xwork2/spring/actionContext-xwork.xml");
-        container.inject(provider);
-        loadConfigurationProviders(provider);
-    }
-
-    public void testProxyAccessIsBlocked() throws Exception {
-        ActionProxy proxy = actionProxyFactory.createActionProxy(null,
-            "chaintoAOPedTestSubBeanAction", null, context);
-
-        SecurityMemberAccess sma = new SecurityMemberAccess(true);
-        sma.disallowProxyMemberAccess(true);
-
-        Member member = 
proxy.getAction().getClass().getMethod("isExposeProxy");
-
-        boolean accessible = sma.isAccessible(context, proxy.getAction(), 
member, "");
-        assertFalse(accessible);
-    }
-
-    public void testProxyAccessIsAccessible() throws Exception {
-        ActionProxy proxy = actionProxyFactory.createActionProxy(null,
-            "chaintoAOPedTestSubBeanAction", null, context);
-
-        SecurityMemberAccess sma = new SecurityMemberAccess(true);
-
-        Member member = 
proxy.getAction().getClass().getMethod("isExposeProxy");
-
-        boolean accessible = sma.isAccessible(context, proxy.getAction(), 
member, "");
-        assertTrue(accessible);
-    }
+public class SecurityMemberAccessProxyTest extends 
com.opensymphony.xwork2.ognl.SecurityMemberAccessProxyTest {
 }

Reply via email to