Commit 57afa9bb authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

add proxied headers to configuration

parent 5326152a
...@@ -15,6 +15,11 @@ startupConfiguration: ...@@ -15,6 +15,11 @@ startupConfiguration:
digestMethod: "MD5" digestMethod: "MD5"
proxiedHeaders:
- "KYN_2016"
- "EY_HEADER"
- "Content-Type"
admins: admins:
- name: "gpietrus_admin" - name: "gpietrus_admin"
password: "41b450e73c974fca46911eba84e114f2" #gpietrus md5 password: "41b450e73c974fca46911eba84e114f2" #gpietrus md5
......
...@@ -15,6 +15,11 @@ startupConfiguration: ...@@ -15,6 +15,11 @@ startupConfiguration:
digestMethod: "MD5" digestMethod: "MD5"
proxiedHeaders:
- "KYN_2016"
- "EY_HEADER"
- "Content-Type"
admins: admins:
- name: "gpietrus_admin" - name: "gpietrus_admin"
password: "41b450e73c974fca46911eba84e114f2" #gpietrus md5 password: "41b450e73c974fca46911eba84e114f2" #gpietrus md5
......
...@@ -8,6 +8,7 @@ import io.dropwizard.Configuration; ...@@ -8,6 +8,7 @@ import io.dropwizard.Configuration;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.List; import java.util.List;
import java.util.Set;
public class ApplicationConfiguration extends Configuration public class ApplicationConfiguration extends Configuration
{ {
...@@ -38,6 +39,9 @@ public class ApplicationConfiguration extends Configuration ...@@ -38,6 +39,9 @@ public class ApplicationConfiguration extends Configuration
@NotNull @NotNull
private StartupConfiguration startupConfiguration; private StartupConfiguration startupConfiguration;
@NotNull
private Set<String> proxiedHeaders;
public List<User> getAdmins() public List<User> getAdmins()
{ {
return admins; return admins;
...@@ -132,4 +136,14 @@ public class ApplicationConfiguration extends Configuration ...@@ -132,4 +136,14 @@ public class ApplicationConfiguration extends Configuration
{ {
this.startupConfiguration = startupConfiguration; this.startupConfiguration = startupConfiguration;
} }
public Set<String> getProxiedHeaders()
{
return proxiedHeaders;
}
public void setProxiedHeaders(Set<String> proxiedHeaders)
{
this.proxiedHeaders = proxiedHeaders;
}
} }
...@@ -5,6 +5,7 @@ import com.telephoners.krakyournet.ctf.beans.User; ...@@ -5,6 +5,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.beans.tasks.TaskRequestContext; import com.telephoners.krakyournet.ctf.beans.tasks.TaskRequestContext;
import com.telephoners.krakyournet.ctf.beans.tasks.TaskResponse; import com.telephoners.krakyournet.ctf.beans.tasks.TaskResponse;
import com.telephoners.krakyournet.ctf.core.ApplicationConfiguration;
import com.telephoners.krakyournet.ctf.helpers.StreamUtils; import com.telephoners.krakyournet.ctf.helpers.StreamUtils;
import com.telephoners.krakyournet.ctf.repositories.TasksRepository; import com.telephoners.krakyournet.ctf.repositories.TasksRepository;
import io.dropwizard.auth.Auth; import io.dropwizard.auth.Auth;
...@@ -30,12 +31,13 @@ import java.util.stream.Collectors; ...@@ -30,12 +31,13 @@ import java.util.stream.Collectors;
@Path(value = "/task") @Path(value = "/task")
public class TaskResource public class TaskResource
{ {
private final ApplicationConfiguration applicationConfiguration;
private final TasksRepository tasksRepository; private final TasksRepository tasksRepository;
private static final Set<String> PROXIED_HEADERS = Sets.newHashSet("KYN_2016", "EY_HEADER", "Content-Type"); //todo: move to conf
@Inject @Inject
public TaskResource(TasksRepository tasksRepository) public TaskResource(ApplicationConfiguration applicationConfiguration, TasksRepository tasksRepository)
{ {
this.applicationConfiguration = applicationConfiguration;
this.tasksRepository = tasksRepository; this.tasksRepository = tasksRepository;
} }
...@@ -62,9 +64,10 @@ public class TaskResource ...@@ -62,9 +64,10 @@ public class TaskResource
*/ */
private Map<String, String> extractProxiedHeaders(MultivaluedMap<String, String> headers) { private Map<String, String> extractProxiedHeaders(MultivaluedMap<String, String> headers) {
Set<String> proxiedHeaders = applicationConfiguration.getProxiedHeaders();
return headers.entrySet() return headers.entrySet()
.stream() .stream()
.filter(header -> PROXIED_HEADERS.contains(header.getKey())) .filter(header -> proxiedHeaders.contains(header.getKey()))
.collect(Collectors.toMap( .collect(Collectors.toMap(
Map.Entry::getKey, Map.Entry::getKey,
entry -> entry.getValue().get(0) //todo: check entry -> entry.getValue().get(0) //todo: check
......
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