Hello,

By design, having ArbitrarySerializable (sorry, arbitrary deserialization) 
built in a generic piece of code is a security hole: gadgets can be crafted and 
result in remote code execution.

We instead introduced a byte serializer. It is now to the application user to 
serialize it's attributes and wrap it in a bytes backed attribute at the edges 
of the James server.

See https://issues.apache.org/jira/browse/JAMES-3829

Might you need assistance in this migration, I would be happy to help with 
professional supports.


--


Best regards,



Benoit TELLIER



General manager of Linagora VIETNAM.

Product owner for Team-Mail product.

Chairman of the Apache James project.



Mail: btell...@linagora.com

Tel: (0033) 6 77 26 04 58 (WhatsApp, Signal)

On Jul 17, 2023 7:18 PM, from Martijn Brinkers I'm in the process of converting 
code for James 2.X to 3.8.

I'm having some trouble storing an instance of an arbitrary class as a Mail
attribute.

James 2.X supported storing Serializable objects directly as an Mail
attribute. In James 3.X this was changed to a specialized procedure using
JSON serialization.

It looks like I need to implement ArbitrarySerializable to support storing
arbitrary objects. There is example implementation of ArbitrarySerializable
but that's only a simple example supporting an Integer which works because
AttributeValue.of already supports Integer's.

Can someone help me with an example on how to store complex objects as a
Mail attribute?

Kind regards,

Martijn Brinkers

Reply via email to