WW-2815 Fixes support for Collections and String

This commit is contained in:
Lukasz Lenart
2022-10-17 09:52:07 +02:00
parent ac13c32bdb
commit a562f8f806
2 changed files with 5 additions and 8 deletions
@@ -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));
}
}
@@ -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();
}
}