Skip to content

Commit

Permalink
Gitignore error, matched target payloads
Browse files Browse the repository at this point in the history
  • Loading branch information
matthiaskaiser committed Jul 25, 2016
1 parent 6382f94 commit 6ee675e
Show file tree
Hide file tree
Showing 12 changed files with 764 additions and 0 deletions.
98 changes: 98 additions & 0 deletions src/main/java/de/codewhite/jmet/target/BaseTarget.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
package de.codewhite.jmet.target;

import de.codewhite.jmet.types.DestType;
import de.codewhite.jmet.types.MessageType;
import de.codewhite.jmet.types.ModeType;

/**
* Created by kaimatt
*/
public abstract class BaseTarget implements Target {
private String host;
private int port;
private String destination;
private String user;
private String password;
private ModeType mode;
private String cmd;
private MessageType type;

private String vhost;

public String getVhost() {
return vhost;
}

public void setVhost(String vhost) {
this.vhost = vhost;
}


public DestType getDestType() {
return destType;
}

public void setDestType(DestType destType) {
this.destType = destType;
}

private DestType destType;


public String getHost() {
return host;
}

public void setHost(String host) {
this.host = host;
}

public int getPort() {
return port;
}

public void setPort(int port) {
this.port = port;
}

public String getDestination() {
return destination;
}

public void setDestination(String destination) {
this.destination = destination;
}

public String getUser() {
return user;
}

public void setUser(String user) {
this.user = user;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public ModeType getMode() {
return mode;
}

public void setMode(ModeType mode) {
this.mode = mode;
}

public String getCmd() {
return cmd;
}

public void setCmd(String cmd) {
this.cmd = cmd;
}

}
176 changes: 176 additions & 0 deletions src/main/java/de/codewhite/jmet/target/JMSTarget.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
package de.codewhite.jmet.target;

import de.codewhite.jmet.exceptions.CheckException;
import de.codewhite.jmet.exceptions.SendException;
import de.codewhite.jmet.exceptions.ShutdownException;
import de.codewhite.jmet.filter.ScriptMesageFilter;
import de.codewhite.jmet.payload.impl.BytesPayloadItem;
import de.codewhite.jmet.payload.impl.ObjectPayloadItem;
import de.codewhite.jmet.payload.impl.TextPayloadItem;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import javax.jms.*;
import javax.script.ScriptException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
* Created by kaimatt.
*/
public abstract class JMSTarget extends BaseTarget {

protected final Logger logger = LogManager.getLogger(this.getClass().getName());
protected ConnectionFactory factory;
protected Connection connection;
protected Session session;
protected Destination dest;
protected MessageProducer producer;

protected List<ObjectPayloadItem> objectPayloads = new ArrayList<>();
protected List<TextPayloadItem> textPayloads = new ArrayList<>();
protected List<BytesPayloadItem> bytesPayloads = new ArrayList<>();
protected ScriptMesageFilter filter;

protected boolean gadgetWrapping = false;

public boolean isGadgetWrapping() {
return gadgetWrapping;
}

public void setGadgetWrapping(boolean gadgetWrapping) {
this.gadgetWrapping = gadgetWrapping;
}

public void addObjectPayloads(List<ObjectPayloadItem> payload) {
objectPayloads.addAll(payload);
}

public void addTextPayloads(List<TextPayloadItem> payload) {
textPayloads.addAll(payload);
}

public void addBytesPayloads(List<BytesPayloadItem> payload) {
bytesPayloads.addAll(payload);
}

public void addObjectPayload(String type, String command, Serializable payload) {
objectPayloads.add(new ObjectPayloadItem(type, command, payload));

}

public void addTextPayload(String payloadName, String payloadText) {
textPayloads.add(new TextPayloadItem(payloadName, payloadText));

}

public void addBytesPayload(String payloadName, Object[] payloadBytes) {
bytesPayloads.add(new BytesPayloadItem(payloadName, payloadBytes));

}

public List<ObjectPayloadItem> getObjectPayloads() {
return objectPayloads;
}

public List<TextPayloadItem> getTextPayloads() {
return textPayloads;
}

public List<BytesPayloadItem> getBytesPayloads() {
return bytesPayloads;
}

public ScriptMesageFilter getFilter() {
return filter;
}

public void sendPayloads() throws SendException, ScriptException, NoSuchMethodException {


for (ObjectPayloadItem pay : objectPayloads) {

try {
ObjectMessage msg = session.createObjectMessage(pay.getPayload());
if (filter != null) {

msg = (ObjectMessage) filter.filter(msg);

}
producer.send(msg);
logger.info("Sent gadget \"{}\" with command: \"{}\"", pay.getType(), pay.getCommand());
} catch (JMSException e) {
throw new SendException("Sending ObjectMessage failed", e);
}

}

for (TextPayloadItem pay : textPayloads) {

TextMessage msg;
try {
msg = session.createTextMessage(pay.getPayloadText());
if (filter != null) {
msg = (TextMessage) filter.filter(msg);
}
producer.send(msg);
logger.info("Sent TextMessage with payload \"{}\"", pay.getPayloadName());
} catch (JMSException e) {
throw new SendException("Sending TextMessage failed", e);
}


}

for (BytesPayloadItem pay : bytesPayloads) {

try {
BytesMessage msg = session.createBytesMessage();
if (filter != null) {
msg = (BytesMessage) filter.filter(msg);
}
msg.writeObject(pay.getPayloadBytes());
producer.send(msg);
logger.info("Sent BytesMessage: Payload name: \"{}\"", pay.getPayloadName());
} catch (JMSException e) {
throw new SendException("Sending BytesMessage failed", e);
}


}

}


public void check() throws CheckException {

String id;
try {
id = connection.getClientID();
logger.info("Connected with ID: {}", id);
} catch (JMSException e) {
throw new CheckException("Connecting failed", e);
}


}


public void shutdown() throws ShutdownException {


try {
logger.info("Shutting down connection {}", connection.getClientID());
connection.close();
} catch (JMSException e) {
throw new ShutdownException("Shutdown failed", e);
}


}

public void setFilter(ScriptMesageFilter filter) {
this.filter = filter;
}
}
42 changes: 42 additions & 0 deletions src/main/java/de/codewhite/jmet/target/Target.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package de.codewhite.jmet.target;

import de.codewhite.jmet.exceptions.CheckException;
import de.codewhite.jmet.exceptions.InitException;
import de.codewhite.jmet.exceptions.SendException;
import de.codewhite.jmet.exceptions.ShutdownException;
import de.codewhite.jmet.payload.impl.BytesPayloadItem;
import de.codewhite.jmet.payload.impl.ObjectPayloadItem;
import de.codewhite.jmet.payload.impl.TextPayloadItem;
import de.codewhite.jmet.types.ModeType;

import javax.script.ScriptException;
import java.io.Serializable;
import java.util.List;

/**
* Created by kaimatt
*/
public interface Target {

void addObjectPayloads(List<ObjectPayloadItem> payload);

void addObjectPayload(String type, String command, Serializable payload);

void addTextPayloads(List<TextPayloadItem> payload);

void addTextPayload(String payloadName, String payloadText);

void addBytesPayloads(List<BytesPayloadItem> payload);

void addBytesPayload(String payloadName, Object[] payloadBytes);

ModeType[] getSupportedModes();

void check() throws CheckException;

void init() throws InitException;

void sendPayloads() throws SendException, ScriptException, NoSuchMethodException;

void shutdown() throws ShutdownException;
}
49 changes: 49 additions & 0 deletions src/main/java/de/codewhite/jmet/target/impl/ActiveMQTarget.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package de.codewhite.jmet.target.impl;

import de.codewhite.jmet.exceptions.InitException;
import de.codewhite.jmet.target.JMSTarget;
import de.codewhite.jmet.types.ModeType;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.ActiveMQSession;
import org.apache.activemq.command.ActiveMQQueue;
import org.apache.activemq.command.ActiveMQTopic;

import javax.jms.JMSException;

/**
* Created by kaimatt.
*/
public class ActiveMQTarget extends JMSTarget {

public ModeType[] getSupportedModes() {
return new ModeType[]{ModeType.OPENWIRE};
}


public void init() throws InitException {

try {
factory = new ActiveMQConnectionFactory("tcp://" + getHost() + ":" + getPort());
connection = factory.createConnection(getUser(), getPassword());

session = connection.createSession(false, ActiveMQSession.AUTO_ACKNOWLEDGE);

switch (getDestType()) {
case QUEUE:
dest = new ActiveMQQueue(getDestination());
break;
case TOPIC:
dest = new ActiveMQTopic(getDestination());
break;
}


producer = session.createProducer(dest);
connection.start();
} catch (JMSException e) {
throw new InitException(e.fillInStackTrace());
}
}


}
Loading

0 comments on commit 6ee675e

Please sign in to comment.