Commit 8d5a20f5 authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

move tasks generation to configuration

parent 66c8dabe
......@@ -4,16 +4,6 @@ dbName: db
flagHashMethod: "MD5"
testsTemporary:
- value: "a"
asdf: "ff"
- value: "a"
asdf: "ff"
- value: "a"
asdf: "ff"
- value: "a"
asdf: "ff"
teams:
- name: "misiaczki"
description: "misiaczki opis"
......@@ -51,3 +41,25 @@ teams:
- name: "rosiu3"
password: "188ed9df2dac8e10f5c5fd2e02383765" #rosiu321 md5
email: "rosiu@gmail.com"
cryptoTasks:
- name: "Szyfro1"
text: "Odszyfruj1"
flag: "asdf"
level: 1
- name: "Szyfro2"
text: "Odszyfruj2"
flag: "sdfg"
level: 2
webTasks:
- name: "SQL Injection"
url: "http://google.pl"
flag: "fgh"
level: 3
- name: "Inna dziura"
url: "http://wikipedia.pl"
flag: "hjk"
level: 4
......@@ -6,6 +6,8 @@ import com.google.inject.Injector;
import com.mongodb.MongoClient;
import core.ApplicationConfiguration;
import core.TaskType;
import helpers.CryptoTaskConfig;
import helpers.WebTaskConfig;
import io.dropwizard.Application;
import io.dropwizard.assets.AssetsBundle;
import io.dropwizard.auth.*;
......@@ -26,13 +28,9 @@ import repositories.SolutionsRepository;
import repositories.TasksRepository;
import repositories.TeamsRepository;
import repositories.UsersRepository;
import resources.ProxyResource;
import resources.SolutionsResource;
import resources.TasksResource;
import resources.TeamsResource;
import resources.TaskResource;
import resources.*;
import java.util.UUID;
import java.util.List;
import java.util.stream.Stream;
/**
......@@ -49,8 +47,7 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
private Injector injector;
@Override
public void initialize(final Bootstrap<ApplicationConfiguration> bootstrap)
{
public void initialize(final Bootstrap<ApplicationConfiguration> bootstrap) {
bootstrap.addBundle(new AssetsBundle("/assets", "/page", "index.html"));
Stream.of("org.webjars.npm", "org.webjars.bower")
.map(WebJarBundle::new)
......@@ -73,17 +70,28 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
});
}
private void initializeTasks() {
int numberOfNewTasks = 20;
private void initializeTasks(ApplicationConfiguration applicationConfiguration) {
List<CryptoTaskConfig> cryptoTasks = applicationConfiguration.getCryptoTasks();
List<WebTaskConfig> webTasks = applicationConfiguration.getWebTasks();
tasksRepository.clean();
for (int i = 0; i < numberOfNewTasks; i++) {
Task task = new Task(String.valueOf(UUID.randomUUID()), i,
i % 2 == 0 ? TaskType.CRYPTO : TaskType.WEB,
Flag.newRandomFlag(),
i % 2 == 0 ? new TaskCryptoContent("crypto text") : new TaskWebContent("http://google.com")
);
tasksRepository.add(task);
}
cryptoTasks.forEach(cryptoTaskConfig -> tasksRepository.add(new Task(
cryptoTaskConfig.getName(),
cryptoTaskConfig.getLevel(),
TaskType.CRYPTO,
new Flag(cryptoTaskConfig.getFlag()),
new TaskCryptoContent(cryptoTaskConfig.getText())
)));
webTasks.forEach(webTaskConfig -> tasksRepository.add(new Task(
webTaskConfig.getName(),
webTaskConfig.getLevel(),
TaskType.WEB,
new Flag(webTaskConfig.getFlag()),
new TaskWebContent(webTaskConfig.getUrl())
)));
}
private void initializeSolutions() {
......@@ -117,7 +125,7 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
injector = createInjector(applicationConfiguration, datastore);
initializeTeams(applicationConfiguration);
initializeTasks();
initializeTasks(applicationConfiguration);
initializeSolutions();
registerResources(environment);
registerAuthFeatures(environment);
......@@ -135,7 +143,7 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
@Override
public com.google.common.base.Optional<User> authenticate(BasicCredentials credentials) throws AuthenticationException {
User user = usersRepository.authenticateUser(credentials);
if(user != null) {
if (user != null) {
return Optional.of(user);
}
return Optional.absent();
......
package core;
import helpers.CryptoTaskConfig;
import helpers.WebTaskConfig;
import io.dropwizard.Configuration;
import objects.Team;
......@@ -12,12 +14,26 @@ public class ApplicationConfiguration extends Configuration {
private String dbHost;
private int dbPort;
private String dbName;
private String flagHashMethod;
private List<Team> teams;
private List<CryptoTaskConfig> cryptoTasks;
private List<WebTaskConfig> webTasks;
public List<CryptoTaskConfig> getCryptoTasks() {
return cryptoTasks;
}
private List<Test> testsTemporary;
public void setCryptoTasks(List<CryptoTaskConfig> cryptoTasks) {
this.cryptoTasks = cryptoTasks;
}
public List<WebTaskConfig> getWebTasks() {
return webTasks;
}
public void setWebTasks(List<WebTaskConfig> webTasks) {
this.webTasks = webTasks;
}
public String getFlagHashMethod() {
return flagHashMethod;
......@@ -31,14 +47,6 @@ public class ApplicationConfiguration extends Configuration {
this.teams = teams;
}
public List<Test> getTestsTemporary() {
return testsTemporary;
}
public void setTestsTemporary(List<Test> testsTemporary) {
this.testsTemporary = testsTemporary;
}
public void setFlagHashMethod(String flagHashMethod) {
this.flagHashMethod = flagHashMethod;
}
......
package helpers;
/**
* Created by gpietrus on 23.02.2016.
*/
public class CryptoTaskConfig {
private String name;
private int level;
private String text;
private String flag;
public String getName() {
return name;
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
public void setName(String name) {
this.name = name;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getFlag() {
return flag;
}
public void setFlag(String flag) {
this.flag = flag;
}
}
package helpers;
/**
* Created by gpietrus on 23.02.2016.
*/
public class WebTaskConfig {
private String name;
private String url;
private int level;
private String flag;
public String getName() {
return name;
}
public int getLevel() {
return level;
}
public void setLevel(int level) {
this.level = level;
}
public void setName(String name) {
this.name = name;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getFlag() {
return flag;
}
public void setFlag(String flag) {
this.flag = flag;
}
}
......@@ -14,7 +14,6 @@ import repositories.TasksRepository;
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment