Commit 7f19f718 authored by Grzegorz Pietrusza's avatar Grzegorz Pietrusza

inject messageDigestProvider

parent 995b6e22
......@@ -3,28 +3,26 @@ package com.telephoners.krakyournet.ctf.core;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.telephoners.krakyournet.ctf.beans.User;
import com.telephoners.krakyournet.ctf.providers.MessageDigestProvider;
import org.apache.commons.codec.binary.Hex;
import javax.inject.Named;
import java.security.MessageDigest;
@Singleton
public class HashValidator
{
private ApplicationConfiguration applicationConfiguration;
private MessageDigest messageDigest; //todo: use messageDigestProvider
private MessageDigestProvider messageDigestProvider;
@Inject
public HashValidator(ApplicationConfiguration applicationConfiguration,
final @Named("messageDigest") MessageDigest messageDigest)
MessageDigestProvider messageDigestProvider)
{
this.applicationConfiguration = applicationConfiguration;
this.messageDigest = messageDigest;
this.messageDigestProvider = messageDigestProvider;
}
public String calculateHashValue(User user, String flagValue)
{
String combinedStrings = applicationConfiguration.getSalt() + user.getName() + flagValue;
return Hex.encodeHexString(messageDigest.digest(combinedStrings.getBytes()));
return Hex.encodeHexString(messageDigestProvider.getMessageDigest().digest(combinedStrings.getBytes()));
}
}
package com.telephoners.krakyournet.ctf.modules;
import com.google.inject.AbstractModule;
import com.google.inject.name.Names;
import com.telephoners.krakyournet.ctf.core.ApplicationConfiguration;
import com.telephoners.krakyournet.ctf.providers.DatastoreProvider;
import com.telephoners.krakyournet.ctf.providers.MessageDigestProvider;
import org.mongodb.morphia.Datastore;
import java.security.MessageDigest;
public class ApplicationModule extends AbstractModule
{
private ApplicationConfiguration applicationConfiguration;
public ApplicationModule(ApplicationConfiguration applicationConfiguration)
......@@ -24,7 +19,5 @@ public class ApplicationModule extends AbstractModule
{
bind(ApplicationConfiguration.class).toInstance(applicationConfiguration);
bind(Datastore.class).toInstance(new DatastoreProvider(applicationConfiguration).getDatastore());
bind(MessageDigest.class).annotatedWith(Names.named("messageDigest"))
.toInstance(new MessageDigestProvider(applicationConfiguration).getMessageDigest());
}
}
package com.telephoners.krakyournet.ctf.providers;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.telephoners.krakyournet.ctf.core.ApplicationConfiguration;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
@Singleton
public class MessageDigestProvider
{
private ApplicationConfiguration applicationConfiguration;
@Inject
public MessageDigestProvider(ApplicationConfiguration applicationConfiguration)
{
this.applicationConfiguration = applicationConfiguration;
......
......@@ -2,24 +2,22 @@ package com.telephoners.krakyournet.ctf.repositories;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.google.inject.name.Named;
import com.telephoners.krakyournet.ctf.beans.User;
import com.telephoners.krakyournet.ctf.providers.MessageDigestProvider;
import io.dropwizard.auth.basic.BasicCredentials;
import org.apache.commons.codec.binary.Hex;
import org.mongodb.morphia.Datastore;
import java.security.MessageDigest;
@Singleton
public class UsersRepository extends Repository<User>
{
private MessageDigest messageDigest;
private MessageDigestProvider messageDigestProvider;
@Inject
public UsersRepository(Datastore datastore, final @Named("messageDigest") MessageDigest messageDigest)
public UsersRepository(Datastore datastore, MessageDigestProvider messageDigestProvider)
{
super(datastore);
this.messageDigest = messageDigest;
this.messageDigestProvider = messageDigestProvider;
}
public User getUserByName(String username)
......@@ -33,7 +31,7 @@ public class UsersRepository extends Repository<User>
{
return datastore.createQuery(User.class)
.field("name").equal(basicCredentials.getUsername())
.field("password").equal(Hex.encodeHexString(messageDigest.digest(basicCredentials.getPassword().getBytes())))
.field("password").equal(Hex.encodeHexString(messageDigestProvider.getMessageDigest().digest(basicCredentials.getPassword().getBytes())))
.get();
}
}
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