Thomas Recloux, I've had an initial look. Thanks for making that available!
It's reasonably straight forward. A couple of things. Did you try serializing List<FlashMap> as-is rather than converting to a List<Map<String,Object>>?
Also I see serialization and encryption as good targets points of variation – e.g. to use different libraries . One option is to introduce a base class with abstract methods for encoding/decoding. However since serialization and encryption may need to vary independently, perhaps a delegate strategy is better. For example FlashMapCodec with methods to go both ways List<FlashMap>-to-String. Then we would add a Jackson codec for serialization and a jasypt codec for encryption. Of course the encrypting codec would need to delegate to a serializing codec (Jackson) for the serialization part and provide encryption on top.
What do you think?