java - streamx - xstream rosemount
El marco de seguridad de XStream no está inicializado, XStream probablemente es vulnerable (3)
Security framework of XStream not initialized, XStream is probably vulnerable
Sigo recibiendo este error de consola en rojo mientras uso XStream (1.4.10)
Intenté lo siguiente:
XStream.setupDefaultSecurity(xs);
y
xs.addPermission(AnyTypePermission.ANY);
xs.addPermission(NoTypePermission.NONE);
ninguno de los cuales se deshizo de él.
No necesito ninguna configuración de seguridad sofisticada, solo quiero silenciar esa advertencia. Quizás también prepare el código para 1.5.x
Al tratar con problemas de seguridad, no lo tomaría a la ligera. En primer lugar, uno entendería la gravedad del problema, aquí un buen escrito .
Luego descubre cómo la gente recomienda la solución. El buen lugar para comenzar es desde el propio sitio web de xstream. Hay un ejemplo que puede usar como punto de partida en la página de seguridad de xstream .
Esta sería mi configuración que básicamente permite la mayor parte de su código.
XStream xstream = new XStream();
// clear out existing permissions and set own ones
xstream.addPermission(NoTypePermission.NONE);
// allow some basics
xstream.addPermission(NullPermission.NULL);
xstream.addPermission(PrimitiveTypePermission.PRIMITIVES);
xstream.allowTypeHierarchy(Collection.class);
// allow any type from the same package
xstream.allowTypesByWildcard(new String[] {
"com.your.package.**"
});
Sin embargo, después de sumergirme más en su código fuente, esta es mi opinión:
XStream.setupDefaultSecurity(this); // to be removed after 1.5
xstream.allowTypesByWildcard(new String[] {
"com.your.package.**"
});
Básicamente, solo necesitará una línea una vez que actualice a 1.5.
Tenga en cuenta que es posible que necesite más comodines para adaptarse a los escenarios de deserialización de su aplicación. Esta no es una respuesta de talla única sino un buen punto de partida en mi humilde opinión.
También funciona especificando un patrón de todo incluido para las clases permitidas:
xstream.allowTypesByRegExp(new String[] { ".*" });
Tuve el mismo "problema" y lo resolví permitiendo los tipos relevantes:
Class<?>[] classes = new Class[] { ABC.class, XYZ.class };
XStream xStream = new XStream();
XStream.setupDefaultSecurity(xStream);
xStream.allowTypes(classes);
Tal vez esto también ayuda en tu caso.
¡Buena suerte!