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