This is an automated email from the ASF dual-hosted git repository. lukaszlenart pushed a commit to branch WW-2815-xstream in repository https://gitbox.apache.org/repos/asf/struts.git
commit a562f8f8065223e71777b1931a736c9ac980e913 Author: Lukasz Lenart <lukaszlen...@apache.org> AuthorDate: Mon Oct 17 09:52:07 2022 +0200 WW-2815 Fixes support for Collections and String --- .../java/org/apache/struts2/rest/handler/XStreamHandler.java | 4 ++-- .../java/org/apache/struts2/rest/handler/XStreamHandlerTest.java | 9 +++------ 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/plugins/rest/src/main/java/org/apache/struts2/rest/handler/XStreamHandler.java b/plugins/rest/src/main/java/org/apache/struts2/rest/handler/XStreamHandler.java index 70ea810eb..5958ff5c9 100644 --- a/plugins/rest/src/main/java/org/apache/struts2/rest/handler/XStreamHandler.java +++ b/plugins/rest/src/main/java/org/apache/struts2/rest/handler/XStreamHandler.java @@ -107,6 +107,7 @@ public class XStreamHandler extends AbstractContentTypeHandler { stream.addPermission(new ExplicitTypePermission(new Class[]{((ModelDriven<?>) invocation.getAction()).getModel().getClass()})); } stream.addPermission(NullPermission.NULL); + stream.addPermission(new ExplicitTypePermission(new Class[]{String.class})); stream.addPermission(PrimitiveTypePermission.PRIMITIVES); stream.addPermission(ArrayTypePermission.ARRAYS); stream.addPermission(CollectionTypePermission.COLLECTIONS); @@ -126,8 +127,7 @@ public class XStreamHandler extends AbstractContentTypeHandler { @Override public boolean allows(Class type) { - return type != null && type.isInterface() && - (Collection.class.isAssignableFrom(type) || Map.class.isAssignableFrom(type)); + return type != null && (Collection.class.isAssignableFrom(type) || Map.class.isAssignableFrom(type)); } } diff --git a/plugins/rest/src/test/java/org/apache/struts2/rest/handler/XStreamHandlerTest.java b/plugins/rest/src/test/java/org/apache/struts2/rest/handler/XStreamHandlerTest.java index 3510634ed..732643bdc 100644 --- a/plugins/rest/src/test/java/org/apache/struts2/rest/handler/XStreamHandlerTest.java +++ b/plugins/rest/src/test/java/org/apache/struts2/rest/handler/XStreamHandlerTest.java @@ -38,6 +38,7 @@ import java.io.Writer; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Locale; @@ -135,16 +136,12 @@ public class XStreamHandlerTest extends XWorkTestCase { @Override public Set<String> allowedClassNames() { - HashSet<String> strings = new HashSet<>(); - strings.add(ArrayList.class.getName()); - return strings; + return Collections.emptySet(); } @Override public Collection<TypePermission> getTypePermissions() { - ArrayList<TypePermission> permissions = new ArrayList<>(); - permissions.add(new ExplicitTypePermission(new Class[]{String.class})); - return permissions; + return Collections.emptyList(); } }