Dernière mise à jour le
1 mai 2021
Problème
Après la mise à niveau vers AEM 6.2 ou version ultérieure, l'application échoue en affichant des erreurs « désérialisation non autorisée pour la catégorie » (voir l'exemple ci-dessous).
java.lang.UnsupportedOperationException: Deserialization not allowed for class net.sf.ehcache.Element (on Thu Sep 21 12:29:55 CDT 2017) at org.kantega.notsoserial.DefaultNotSoSerial.preventDeserialization(DefaultNotSoSerial.java:256) at org.kantega.notsoserial.DefaultNotSoSerial.onBeforeResolveClass(DefaultNotSoSerial.java:248) at org.kantega.notsoserial.ObjectInputStreamClassVisitor.onBeforeResolveClass(ObjectInputStreamClassVisitor.java:48) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1613) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1774) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371) at net.sf.ehcache.store.disk.DiskStorageFactory.read(DiskStorageFactory.java:370) at net.sf.ehcache.store.disk.DiskStorageFactory.retrieve(DiskStorageFactory.java:886) at net.sf.ehcache.store.disk.Segment.decode(Segment.java:172) at net.sf.ehcache.store.disk.Segment.put(Segment.java:449) at net.sf.ehcache.store.disk.DiskStore.put(DiskStore.java:438) at net.sf.ehcache.store.FrontEndCacheTier.put(FrontEndCacheTier.java:267) at net.sf.ehcache.Cache.putInternal(Cache.java:1455) at net.sf.ehcache.Cache.put(Cache.java:1383) at net.sf.ehcache.Cache.put(Cache.java:1348)
Environnement
AEM 6.2 et versions ultérieures.
Cause
Cette erreur survient lorsque le correctif de sécurité nososerial est appliqué au AEM. Pour corriger l'erreur vous pouvez autoriser certaines catégories de Java permettant la désérialisation.
Ajoutez un fichier à la liste blanche en ajoutant le paramètre JVM :
-Dnotsoserial.whitelist=is-deserialized.txt
Résolution
-javaagent:notsoserial.jar -Dnotsoserial.whitelist=empty.txt -Dnotsoserial.dryrun=is-deserialized.txt
Adobe
Recevez de l’aide plus rapidement et plus facilement
Nouvel utilisateur ?