Commit ea0e5ad4 authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

enhanced injections

parent aed5bfae
......@@ -7,6 +7,7 @@ import api.TeamsResource;
import com.google.inject.AbstractModule;
import com.google.inject.Guice;
import com.google.inject.Injector;
import core.FlagChecker;
import core.TaskType;
import database.MongoDBConnector;
import io.dropwizard.Application;
......@@ -63,7 +64,7 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
int numberOfNewTasks = 20;
for(int i = 0; i < 20; i++) {
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()
......@@ -74,8 +75,6 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
//GENERATE TASKS END
//REGISTER RESOURCES
Injector injector = createInjector(dbConnector);
environment.jersey().register(injector.getInstance(TeamsResource.class));
environment.jersey().register(injector.getInstance(TasksResource.class));
......@@ -88,23 +87,21 @@ public class CTFApplication extends Application<ApplicationConfiguration> {
return Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(MongoDBConnector.class).toInstance(dbConnector);
// TeamsRepository teamsRepository = new TeamsRepository(dbConnector);
// TasksRepository tasksRepository = new TasksRepository(dbConnector);
// SolutionsRepository solutionsRepository = new SolutionsRepository(dbConnector);
TeamsRepository teamsRepository = new TeamsRepository(dbConnector);
TasksRepository tasksRepository = new TasksRepository(dbConnector);
SolutionsRepository solutionsRepository = new SolutionsRepository(dbConnector);
FlagChecker flagChecker = new FlagChecker(tasksRepository, teamsRepository, solutionsRepository);
bind(TeamsRepository.class).toInstance(teamsRepository);
bind(TasksRepository.class).toInstance(tasksRepository);
bind(TeamsResource.class).toInstance(new TeamsResource(teamsRepository));
bind(TasksResource.class).toInstance(new TasksResource(tasksRepository,teamsRepository,solutionsRepository));
bind(TasksResource.class).toInstance(new TasksResource(tasksRepository, teamsRepository,
solutionsRepository, flagChecker));
bind(ProxyResource.class).toInstance(new ProxyResource());
bind(FlagChecker.class).toInstance(flagChecker);
}
});
}
......
......@@ -24,13 +24,16 @@ public class TasksResource
private TasksRepository tasksRepository;
private TeamsRepository teamsRepository;
private SolutionsRepository solutionsRepository;
private FlagChecker flagChecker;
//todo: use injections
@Inject
public TasksResource(TasksRepository tasksRepository, TeamsRepository teamsRepository, SolutionsRepository solutionsRepository) {
public TasksResource(TasksRepository tasksRepository, TeamsRepository teamsRepository,
SolutionsRepository solutionsRepository, FlagChecker flagChecker) {
this.tasksRepository = tasksRepository;
this.teamsRepository = teamsRepository;
this.solutionsRepository = solutionsRepository;
this.flagChecker = flagChecker;
}
@GET
......@@ -40,7 +43,7 @@ public class TasksResource
@POST
public boolean submitSolution(String flag) throws Exception {
return new FlagChecker(tasksRepository, teamsRepository, solutionsRepository).checkFlag(flag);
return flagChecker.checkFlag(flag);
}
}
......@@ -7,6 +7,7 @@ import objects.Solution;
import objects.Task;
import org.apache.commons.codec.binary.Hex;
import javax.inject.Inject;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Map;
......@@ -23,6 +24,7 @@ public class FlagChecker {
private TeamsRepository teamsRepository;
private SolutionsRepository solutionsRepository;
@Inject
public FlagChecker(TasksRepository tasksRepository, TeamsRepository teamsRepository, SolutionsRepository solutionsRepository) {
this.tasksRepository = tasksRepository;
this.teamsRepository = teamsRepository;
......
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