Commit 995b6e22 authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

refactor and finally working

parent d2893e91
......@@ -2,11 +2,7 @@ package com.telephoners.krakyournet.ctf.core;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.telephoners.krakyournet.ctf.beans.Flag;
import com.telephoners.krakyournet.ctf.beans.User;
import com.telephoners.krakyournet.ctf.beans.tasks.Task;
import com.telephoners.krakyournet.ctf.repositories.TasksRepository;
import javafx.util.Pair;
import org.apache.commons.codec.binary.Hex;
import javax.inject.Named;
......@@ -17,15 +13,12 @@ public class HashValidator
{
private ApplicationConfiguration applicationConfiguration;
private MessageDigest messageDigest; //todo: use messageDigestProvider
private TasksRepository tasksRepository;
@Inject
public HashValidator(ApplicationConfiguration applicationConfiguration,
TasksRepository tasksRepository,
final @Named("messageDigest") MessageDigest messageDigest)
{
this.applicationConfiguration = applicationConfiguration;
this.tasksRepository = tasksRepository;
this.messageDigest = messageDigest;
}
......@@ -34,10 +27,4 @@ public class HashValidator
String combinedStrings = applicationConfiguration.getSalt() + user.getName() + flagValue;
return Hex.encodeHexString(messageDigest.digest(combinedStrings.getBytes()));
}
public Pair<Task, Flag> checkHash(User user, String hashValue, int taskLevel)
{
return tasksRepository.getTaskFlagPairByHashValue(user, hashValue, taskLevel);
//todo: what if null?
}
}
......@@ -7,6 +7,7 @@ import com.telephoners.krakyournet.ctf.beans.User;
import com.telephoners.krakyournet.ctf.beans.tasks.Task;
import com.telephoners.krakyournet.ctf.core.HashValidator;
import com.telephoners.krakyournet.ctf.repositories.SolutionsRepository;
import com.telephoners.krakyournet.ctf.repositories.TasksRepository;
import com.telephoners.krakyournet.ctf.repositories.TeamsRepository;
import io.dropwizard.auth.Auth;
import javafx.util.Pair;
......@@ -27,15 +28,15 @@ public class SolutionsResource
{
private TeamsRepository teamsRepository;
private SolutionsRepository solutionsRepository;
private HashValidator hashValidator;
private TasksRepository tasksRepository;
@Inject
public SolutionsResource(SolutionsRepository solutionsRepository,
TeamsRepository teamsRepository, HashValidator hashValidator)
public SolutionsResource(SolutionsRepository solutionsRepository, TasksRepository tasksRepository,
TeamsRepository teamsRepository)
{
this.solutionsRepository = solutionsRepository;
this.teamsRepository = teamsRepository;
this.hashValidator = hashValidator;
this.tasksRepository = tasksRepository;
}
@POST
......@@ -44,7 +45,7 @@ public class SolutionsResource
@PathParam("task_level") int taskLevel,
String hash) throws Exception
{
Pair<Task, Flag> taskFlagPair = hashValidator.checkHash(user, hash, taskLevel);
Pair<Task, Flag> taskFlagPair = tasksRepository.getTaskFlagPairByHashValue(user, hash, taskLevel);
if (taskFlagPair != null) {
if(solutionsRepository.submitSolution(new Solution(teamsRepository.getTeamByUser(user), taskFlagPair.getKey(), taskFlagPair.getValue(), hash))) {
return Response.ok().build();
......
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